É uma questão do SELinux.
# setsebool -P ftp_home_dir 1
Eu sei que essa pergunta já foi muito no passado, mas meu problema parece ser um pouco diferente. Estou usando vsftpd
no meu servidor CentOS 7 e especifiquei chroot_local_user
to YES
in /etc/vsftpd/vsftpd.conf
. O usuário do FTP é chamado de user
e seu diretório inicial é /home/user
. Quando tento fazer o login, obtenho isto:
500 OOPS: chroot
Login failed.
421 Service not available, remote server has closed connection
Eu tenho procurado por uma solução, mas as pessoas parecem ter apenas refusing to run with writable root inside chroot()
, não isso. Eu tentei duas coisas:
1.Remover todas permissões de gravação em /home/user
:
[user@vps226220 ~]$ ls -al /home | grep user
dr-x------. 4 user user 4096 Dec 12 00:56 user
2.Adicione allow_writeable_chroot=YES
a /etc/vsftpd/vsftpd.conf
e, em seguida, sudo systemctl restart vsftpd
.
Em ambos os casos, nada mudou, ainda recebo o mesmo erro. Note que se eu definir chroot_local_user=NO
, ele funciona bem, mas é claro que essa não é uma configuração aceitável para mim.
Minha versão vsftpd
é 3.0.2, então acredito que ela deva suportar allow_writable_chroot
.
Como posso resolver este problema?
É uma questão do SELinux.
# setsebool -P ftp_home_dir 1
Nas versões mais recentes do Centos / RHEL, a opção ftp_home_dir
foi removida, portanto você pode usar ftpd_full_access
. Eu não estou totalmente ciente das implicações de segurança, mas é assim que eu consegui que funcionasse
# setsebool -P ftpd_full_access on
links: