Controlando o acesso do ftp com o vsftpd

1

Eu tinha o vsftpd configurado de tal forma que consegui carregar arquivos para um VPS que eu configurei. O único problema é que não consegui criar diretórios. Eu configurei o vsftpd para não permitir usuários anônimos, mas permiti que usuários virtuais se conectassem com suas credenciais locais. Neste ponto, a mensagem de erro quando tentei criar uma pasta foi alterada de '550: Create directory failed' (estou parafraseando) para '550: Permission denied'. root possui a pasta / var / www, e o usuário com o qual eu estava autenticando tinha permissões de leitura e execução, mas não escrevia, então faz sentido que eu não seria capaz de criar pastas ou arquivos.

Neste ponto, tentei usar chown e chmod para alterar de forma recursiva a propriedade do grupo para um grupo em que meu usuário estava e dar permissão de gravação a meu usuário. Isso pareceu funcionar no início - na sessão SSH, eu era capaz de fazer cd para / var / www e criar um novo diretório. No entanto, quando tentei fazer o login com o meu cliente de ftp, tive o acesso negado.

O que é ainda mais estranho é quando eu verifiquei /var/log/vsftpd.log, eu vejo as seguintes linhas:

Mon Jan  5 00:03:25 2015 [pid 801] CONNECT: Client "73.53.82.111"
Mon Jan  5 00:03:25 2015 [pid 800] [gradinafrica] OK LOGIN: Client "73.53.82.111"

... mesmo que o login não pareça funcionar. O que está acontecendo?

EDITAR (mais informações): SO: Ubuntu 14.04 Arquitetura: servidor privado virtual (?)

Quando eu configuro o servidor, eu desautorizei o login como root (como recomendado por várias fontes) e configurei um usuário diferente - 'gradinafrica' - que eu adicionei ao grupo sudo. Eu estou tentando usar essa conta para ftp. Eu não trabalhei com o sftp.

Aqui está o conteúdo do vsftpd.conf (comentários omitidos):

listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
anon_upload_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
local_root=/var/www/
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    
por Brian Gradin 05.01.2015 / 06:17

1 resposta

3

Se você precisar obter permissão de gravação para sua conta de usuário em / var / www / usuário específico, deseje ser um membro do apache ou do grupo de dados www, de acordo com o seu sistema operacional.

write_enable=YES

Use isso apenas se você tiver adicionado um usuário com o diretório raiz da web como seu diretório inicial

allow_writeable_chroot=YES
    
por 05.01.2015 / 06:42