Я хочу предоставить клиенту доступ к моему серверу, но я хочу ограничить этих пользователей их домашними каталогами. Я буду привязывать-монтировать любые файлы, которые я хочу, чтобы они могли видеть.
Я создал пользователя с именем 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@serverbob@server's password: Write failed: Broken pipeCouldn'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 olidrwxr-xr-x 3 bob bob 4096 2012-05-09 14:11 bob