Je veux donner à un client l'accès à mon serveur, mais je veux limiter ces utilisateurs à leurs répertoires personnels. Je vais lier le montage de tous les fichiers que je veux qu'ils puissent voir.
J'ai créé un utilisateur appelé bob
et l'a ajouté à un nouveau groupe appelé sftponly
. Ils ont un répertoire personnel à l'adresse /home/bob
. J'ai changé leur Shell en /bin/false
pour arrêter les connexions SSH. Voici leur /etc/passwd
ligne :
bob:x:1001:1002::/home/bob:/bin/false
J'ai également modifié le /etc/ssh/sshd_config
pour inclure les éléments suivants :
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Lorsque j'essaie de me connecter en tant que tel, voici ce que je vois
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Si je commente le ChrootDirectory
Je peux me connecter par SFTP, mais ils ont alors le champ libre sur le serveur. J'ai constaté que ChrootDirectory /home
fonctionne, mais il leur donne toujours accès à n'importe quel répertoire personnel. J'ai explicitement essayé ChrootDirectory /home/bob
mais ça ne marche pas non plus.
Qu'est-ce que je fais de mal ? Comment puis-je limiter bob
à /home/bob/
?
----EDIT-----
Ok, donc je viens de jeter un coup d'oeil à /var/log/auth.log
et j'ai vu ça :
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
Je ne suis pas entièrement sûr de ce qui se passe ici, mais cela suggère que quelque chose ne va pas avec le répertoire utilisateur. Voici le ls -h /home
sortie :
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