Erro: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Bom, estes dias estava precisando montar um ftp ( sim ainda tem gente que opta por ele ao invés de um sftp que é muito mais seguro ) e acabei dando uma barbeirada na configuração do vsftpd.

Como resolvi o problema rapidamente achei que era interessante dividir isto aqui com vocês.

E portanto, aí vai então 🙂

A primeira coisa que deve ser deixada clara é que a dica é para o vsftpd. A dica foi testada em dois tipos de ambiente. Um com o CentOS 7 e outro com o Fedora ( 23 ).

Portanto não garanto que vá funcionar em outras distros, mas a meu ver, duvido que não funcione.

Então vamos lá.

 

Primeiro método

Este erro ocorre quando se tenta conectar a um vsftpd que está configurado com o jail para cada usuário FTP. Ele é a melhor prática para este tipo de sistema principalmente quando não queremos liberar o SSH.

Uma boa prática, sempre, é não permitir um shell a um usuário ftp. E isto é feito com um comando bem tranquilo que nem vem ao caso nesta dica em especial, mas é sempre bom lembrar para quem monta ambientes FTP:

usermod -s /sbin/nologin foo

No entanto isto é somente uma dica e não vai resolver o problema completamente. Para que isto realmente seja resolvido você terá que tornar o diretório do usuário somente leitura.

Sendo o diretório do usuário /home/foo , execute o comando :

chmod a-w /home/foo

Logo depois reinicie o serviço de ftp :

# systemctl restart vsftpd

 

Segundo método

Este é o método que eu prefiro pois trabalha diretamente no arquivo de configuração do sistema operacional.

Ou seja, ele adiciona uma linha no arquivo de configuração e logo após, reiniciamos o mesmo e tudo já está resolvido :

# echo ‘allow_writeable_chroot=YES’ » /etc/vsftpd/vsftpd.conf

# systemctl restart vsfptd

 

E pronto, agora é só entregar o ftp para seus usuários :)

comments powered by Disqus