Se você quiser usar a solução somente SFTP, criei recentemente uma postagem no blog que descreve exatamente isso, incluindo alguns dos erros mais comuns: link
Se você quiser ir com a solução FTP, o vsftpd é realmente uma boa escolha. No entanto, quando um usuário fizer o upload de um arquivo, ele será definido com seu usuário e grupo seguindo a umask definida. Você pode definir o grupo primário do usuário para www-data e depois criar um umask que se ajuste ao vsftpd.
Esta é uma maneira rápida de fazer o que eu sugeri:
Crie o usuário com o grupo www-data, sem shell real e o diretório home correto, defina a senha depois
useradd -d /path/to/his/domain.com -g www-data -s /bin/false theusername
passwd theusername
Certifique-se de que o vsftpd aceite seu shell. cat / etc / shells e procure / bin / false (não deve estar lá por padrão) - se não estiver lá, adicione:
echo "/bin/false" >> /etc/shells
Em seguida, edite o arquivo de configuração vsftpd. Toque nestes parâmetros: (se eles estiverem comentados, remova o #)
Desativar acesso anônimo ao servidor
anonymous_enable=NO
Permitir que usuários locais usem o FTP
local_enable=YES
Permitir uploads de arquivos
write_enable=YES
Defina o umask, para que os arquivos enviados pelo usuário também sejam graváveis por grupo (www-data)
local_umask=002
Chroot o usuário para que ele não possa sair de seu diretório home
chroot_local_user=YES
Agora, reinicie o vsftpd
/etc/init.d/vsftpd restart
e você deve estar tudo pronto.
MAS!
- FTP é geralmente inseguro.
- Se o SFTP for possível, use-o.
- Ter o servidor da Web permitido para gravar em arquivos é uma falha de segurança, a menos que o diretório seja usado para uploads ou arquivos que o site geralmente altera.