Статья посвящена тому, как настроить доступ пользователям SFTP таким образом, чтоб им был доступен нолько домашний (home) каталог.

Добавим следующие строки в конец файла /etc/ssh/sshd_config file:

Subsystem sftp internal-sftp

# This section must be placed at the very end of sshd_config
Match Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Это означает, что пользователь группы ‘sftponly’ будет chroot’d в своем домашнем каталоге, где только членам этой группы будет разрешен доступ к созданию процессов SFTP.

Теперь создадим группу sftponly:

$ groupadd sftponly

И добавим нашего пользователя в эту группу:

$ usermod steve -g sftponly

Чтоб запретить SSH shell доступ, выполним следущую команду::

$ usermod steve -s /bin/false

И зададим пользовотелю домашний каталог:

$ usermod steve -d /folder

И, в заключение, перезапустим SSH

$ service ssh restart

Теперь SSH часть должна быть в порядке, но вы должны убедиться, что права доступа к файлам выставлены правильно. If the chroot environment is in a user’s home directory both /home и /home/username должны быть под пльзователем root и наш пользователь должен иметь права 755 или 750.

В противном случае, every folder leading up to and including the home folder must be owned by root, otherwise you will get the following error after logging in:

Write failed: Broken pipe
Couldn't read packet: Connection reset by peer

 

Оригинал - статья Restrict SFTP users to home folder