Chcę dać klientowi dostęp do mojego serwera, ale chcę ograniczyć tych użytkowników do ich katalogów domowych. Zamocuję bind-mount we wszystkich plikach, które chcę, aby były widoczne.
Utworzyłem użytkownika o nazwie bob
i dodałem go do nowej grupy o nazwie sftponly
. Mają katalog domowy pod adresem /home/bob
. Zmieniłem ich powłokę, /bin/false
aby zatrzymać logowanie SSH. Oto ich /etc/passwd
linia:
bob:x:1001:1002::/home/bob:/bin/false
Zmieniłem również /etc/ssh/sshd_config
następujące elementy:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Kiedy próbuję się zalogować jako oni, oto co widzę
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Jeśli skomentuję ChrootDirectory
wiersz, mogę wprowadzić SFTP, ale wtedy będą mogli swobodnie sterować serwerem. Znalazłem, że to ChrootDirectory /home
działa, ale nadal daje im dostęp do dowolnego katalogu domowego. Próbowałem wyraźnie, ChrootDirectory /home/bob
ale to też nie działa.
Co ja robię źle? W jaki sposób można ograniczyć bob
do /home/bob/
?
----EDYTOWAĆ-----
Okej, więc właśnie rzuciłem okiem /var/log/auth.log
i zobaczyłem to:
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
Nie jestem do końca pewien, co się tam dzieje, ale to sugeruje, że coś jest nie tak z katalogiem użytkownika. Oto ls -h /home
wynik:
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/%u
można go wymienićChrootDirectory %h
.