Я хочу предоставить клиенту доступ к моему серверу, но я хочу ограничить этих пользователей их домашними каталогами. Я буду привязывать любые файлы, которые я хочу, чтобы они могли видеть.
Я создал пользователя по имени bob
и добавил его в новую группу под названием sftponly
. У них есть домашний каталог по адресу /home/bob
. Я изменил их оболочку, /bin/false
чтобы остановить SSH логины. Вот их /etc/passwd
линия:
bob:x:1001:1002::/home/bob:/bin/false
Я также изменил, /etc/ssh/sshd_config
чтобы включить следующее:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Когда я пытаюсь войти как они, вот что я вижу
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Если я закомментирую ChrootDirectory
строку, я могу ввести SFTP, но тогда у них будет свободное управление сервером. Я обнаружил, что это ChrootDirectory /home
работает, но все равно дает им доступ к любому домашнему каталогу. Я явно пытался, ChrootDirectory /home/bob
но это тоже не работает.
Что я делаю неправильно? Как я могу ограничить bob
до /home/bob/
?
----РЕДАКТИРОВАТЬ-----
Итак, я просто посмотрел /var/log/auth.log
и увидел это:
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
Я не совсем уверен, что там происходит, но это говорит о том, что что-то не так с пользовательским каталогом. Вот ls -h /home
вывод:
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
можно заменитьChrootDirectory %h
.