Оболочка Linux, чтобы ограничить пользователей sftp их домашними каталогами? - PullRequest
33 голосов
/ 06 октября 2009

Мне нужно предоставить SFTP доступ к каталогу в моем webroot на моем сервере. Я настроил ben_files как пользователя и установил для его домашнего каталога значение

/ вар / WWW / виртуальных доменов / mydomain.com / файлы

Все нормально, если он соединяется с обычным старым FTP - он ограничен только этим каталогом, но для включения SFTP мне пришлось добавить его в оболочку bin / bash, которая внезапно открывает весь мой сервер ...

Есть ли способ предоставить ему доступ к SFTP, но не открывая все мои каталоги? Я бы очень хотел, чтобы он был ограничен только своим домом;)

Спасибо!

Ответы [ 5 ]

46 голосов
/ 07 октября 2009

OpenSSH & ge; 4.8 поддерживает директиву ChrootDirectory.

Добавить в /etc/sshd_config или /etc/ssh/sshd_config или в любой глобальный конфигурационный файл sshd вашей настройки:

Match user ben_files
        # The following two directives force ben_files to become chrooted
        # and only have sftp available.  No other chroot setup is required.
        ChrootDirectory /var/www/vhosts/mydomain.com/files
        ForceCommand internal-sftp
        # For additional paranoia, disallow all types of port forwardings.
        AllowTcpForwarding no
        GatewayPorts no
        X11Forwarding no
3 голосов
/ 06 октября 2009

Взгляните на rssh . Возможно, он уже упакован для вашего дистрибутива o / s.

3 голосов
/ 06 октября 2009

Вы можете попробовать установить его оболочку на /bin/rbash

ОГРАНИЧЕННАЯ ОБОЛОЧКА Если bash запускается с именем rbash или опция -r поставляется в вызов, оболочка становится ограниченной. Ограниченная оболочка используемый создать среду, более контролируемую, чем стандартная оболочка. Это ведет себя идентично bash за исключением того, что являются не разрешено или не выполнено:

   ·      changing directories with cd

плюс еще ...

Прежде чем использовать это, убедитесь, что вы полностью понимаете, что разрешено и запрещено.

0 голосов
/ 20 февраля 2014

Вы также можете установить для оболочки пользователя значение / bin / false, используя:

usermod -s / bin / false username

Запрещает им использовать ssh'ing и может использовать только sftp (или ftp, если он настроен)

Я использую это для пользователей sftp вместе с упомянутой настройкой chroot (покрытой другими ответами).

0 голосов
/ 08 октября 2009

Использовать pam_chroot.

Вот хорошее руководство: http://www.howtoforge.com/chroot_ssh_sftp_debian_etch

...