Я хочу предоставить клиенту доступ к моему серверу, но я хочу ограничить их пользователями в своих домашних каталогах. Я свяжусь с монтированием в любых файлах, которые я хочу, чтобы они могли видеть.
Я создал пользователя с именем 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 [email protected]
[email protected]'s password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Если я прокомментирую строку ChrootDirectory
, я могу использовать SFTP, но тогда у них есть свободная привязка к серверу. Я обнаружил, что ChrootDirectory /home
работает, но он по-прежнему дает им доступ к любому домашнему каталогу. Я явно пробовал ChrootDirectory /home/bob
, но это тоже не работает.
Что я делаю неправильно? Как я могу ограничить bob
до /home/bob/
?
---- EDIT -----
Хорошо, поэтому я просто посмотрел на /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