Acabei de configurar meu servidor SFTP e ele funciona bem quando o uso na minha primeira conta de usuário. Eu queria adicionar um usuário que chamaremos de 'magnarp'. No começo eu fiz assim em sshd_config:
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Isso funcionou bem o suficiente, o usuário magnarp entrou em seu diretório pessoal. Tentei então adicionar um link simbólico a ele.
home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"
O link simbólico funcionou bem via SSH, mas não pelo SFTP.
Então, o que eu quero fazer agora é o grupo Chroot sftponly para / home / DUMP e eu fiz assim:
Match group sftponly
ChrootDirectory /home/DUMP
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
A pasta DUMP tem permissões da seguinte maneira.
drwxrwxrwx 5 root root 4096 aug 18 02:25 DUMP
E este é o código de erro:
Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp
A) Qual seria o sentido de criar chroot se criar links simbólicos ajudasse a evitá-lo? (Qualquer usuário pode fazer upload de um simlink e obter acesso a todo o sistema de arquivos)
B) Mais um chmod 777 e você ficará encantado com theo ( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg ). Consulte http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html para entender por que o openssh é tão exigente quanto às permissões do diretório chroot.
fonte