Desejo dar a um cliente acesso ao meu servidor, mas quero limitar esses usuários aos seus diretórios pessoais. Vou montar montagem em todos os arquivos que eu quero que eles possam ver.
Criei um usuário chamado bobe o adicionei a um novo grupo chamado sftponly. Eles têm um diretório inicial em /home/bob. Mudei o shell deles /bin/falsepara parar os logins do SSH. Aqui está a /etc/passwdlinha deles :
bob:x:1001:1002::/home/bob:/bin/false
Também alterei o /etc/ssh/sshd_configpara incluir o seguinte:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Quando tento fazer login como eles, eis o que vejo
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Se eu comentar a ChrootDirectorylinha, posso entrar no SFTP, mas eles terão rédea livre no servidor. Eu descobri que ChrootDirectory /homefunciona, mas ainda dá acesso a qualquer diretório pessoal. Eu tentei explicitamente, ChrootDirectory /home/bobmas isso também não funciona.
O que estou fazendo errado? Como posso limitar boba /home/bob/?
----EDITAR-----
Ok, então eu só dei uma olhada /var/log/auth.loge vi o seguinte:
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened for user bob by (uid=0)
May 9 14:45:48 nj sshd[5091]: fatal: bad ownership or modes for chroot directory component "/home/bob/"
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session closed for user bob
Não tenho certeza do que está acontecendo lá, mas sugere que algo está errado com o diretório do usuário. Aqui está a ls -h /homesaída:
drwxr-xr-x 26 oli oli 4096 2012-01-19 17:19 oli
drwxr-xr-x 3 bob bob 4096 2012-05-09 14:11 bob
ChrootDirectory /home/%upode ser substituídoChrootDirectory %h.