
Eu tinha o vsftpd configurado para poder fazer upload de arquivos para um VPS que configurei. O único problema é que não consegui criar diretórios. Configurei o vsftpd para proibir usuários anônimos, mas permitir que usuários virtuais se conectem com suas credenciais locais. Neste ponto, a mensagem de erro quando tentei criar uma pasta mudou de '550: Falha na criação de diretório' (estou parafraseando) para '550: Permissão negada'. 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 de gravação, então faz sentido que eu não consiga criar pastas ou arquivos.
Neste ponto, tentei usar chown e chmod para alterar recursivamente a propriedade do grupo para um grupo em que meu usuário estava e conceder permissão de gravação ao usuário. Isso pareceu funcionar a princípio - na sessão SSH, consegui fazer cd para /var/www e criar um novo diretório. No entanto, quando tentei fazer login com meu cliente FTP, o acesso foi negado.
O que é ainda mais estranho é que quando verifiquei /var/log/vsftpd.log, 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 pareça não funcionar. O que está acontecendo?
EDITAR(mais informações): SO: Ubuntu 14.04 Arquitetura: Servidor virtual privado (?)
Quando configurei o servidor, proibi o login como root (conforme recomendado por várias fontes) e configurei um usuário diferente - 'gradinafrica' - que adicionei ao grupo sudo. Estou tentando usar esta conta para FTP. Eu não trabalhei com sftp.
Aqui está o conteúdo de 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
Responder1
Se você precisar obter permissão de gravação para sua conta de usuário em /var/www/ usuário específico, deseja ser membro do grupo Apache ou www-data de acordo com seu sistema operacional.
write_enable=YES
Use isto apenas se você adicionou um usuário com o diretório raiz da web como diretório inicial
allow_writeable_chroot=YES