Estou construindo um servidor SFTP no Red Hat 6.9 (para ser claro, estou usando a extensão FTP do OpenSSH). Eu segui o seguinte guia:
https://www.howtoforge.com/tutorial/how-to-setup-an-sftp-server-on-centos/
Eu configuro tudo exatamente como está descrito. O sistema operacional cliente que estou usando é o Windows 10. Testei com o cliente SFTP do Putty e o WinSCP (não acredito que meu problema esteja relacionado a um cliente). Quando tento me conectar, sou solicitado a fornecer um nome de usuário e, em seguida, uma senha. Depois de inserir minha senha, a sessão é encerrada imediatamente. /var/log/secure mostra estas mensagens relevantes:
Aug 2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session opened for user scott.ftp by (uid=0)
Aug 2 14:30:28 SFTP_Server sshd[4089]: fatal: bad ownership or modes for chroot directory "/sftp/scott.ftp/data"
Aug 2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session closed for user scott.ftp
Para mostrar as permissões do diretório, corresponda ao tutorial:
[root@SFTP_Server data]# ls -alh / | grep sftp
drwxr-xr-x 4 root root 4.0K Aug 2 12:37 sftp
[root@SFTP_Server data]# ls -alh /sftp
total 16K
drwxr-xr-x 4 root root 4.0K Aug 2 12:37 .
dr-xr-xr-x. 25 root root 4.0K Aug 2 12:35 ..
drwxr-xr-x 3 root root 4.0K Aug 2 12:38 scott.ftp
[root@SFTP_Server data]# ls -alh /sftp/scott.ftp/
total 12K
drwxr-xr-x 3 root root 4.0K Aug 2 12:38 .
drwxr-xr-x 4 root root 4.0K Aug 2 12:37 ..
drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 data
[root@SFTP_Server data]# ls -alh /sftp/scott.ftp/data/
total 8.0K
drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 .
drwxr-xr-x 3 root root 4.0K Aug 2 12:38 ..
Não tenho certeza do que me deu essa ideia para tentar, mas para solução de problemas, alterei as permissões no "." diretório:
[root@SFTP_Server data]# pwd
/sftp/scott.ftp/data
[root@SFTP_Server data]# chown root:root .
[root@SFTP_Server data]# ls -alh
total 8.0K
drwxrwx--- 2 root root 4.0K Aug 2 12:38 .
drwxr-xr-x 3 root root 4.0K Aug 2 12:38 ..
Agora tento conectar novamente e consigo me conectar com sucesso. Mas não consigo listar o diretório ou criar o diretório ou qualquer outra ação. O erro que recebo aqui é "permissão negada". Enquanto ainda conectado por SFTP, em uma conexão SSH alternativa, altero as permissões de volta:
[root@SFTP_Server data]# chown scott.ftp:sftpusers .
[root@SFTP_Server data]# ls -alh
total 8.0K
drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 .
drwxr-xr-x 3 root root 4.0K Aug 2 12:38 ..
Agora posso criar diretórios e outras ações na sessão SFTP. Eu saio da sessão SFTP e tento conectar e o login falha conforme descrito acima.
Qualquer ajuda é muito apreciada.
Isso não é tecnicamente possível criar um
chroot
, que seria gravável pelo usuário conectado (a menos que você use ACL estendida, o que não é uma boa prática neste caso, quando é proibido por motivo de segurança).O conselho geral é tanto
data/
, que seria gravável por esse usuário.