Назад | Перейти на главную страницу

SFTP-доступ, похожий на jailed shell

У меня вопрос о создании пользователя с доступом к оболочке из тюрьмы (на самом деле все, что требуется от этого пользователя, - это sftp access в один конкретный каталог).

Сценарий следующий - у меня есть существующий код, который защищен IonCube, поэтому я не могу с ним связываться - я застрял с выходными папками, которые он предоставляет. Что он делает, он создает папки с некоторыми файлами для загрузки во время работы. Все, что попадает в /var/www/xy/backup/orderbackup/random-name-folder-here/files_here

Теперь я хотел бы создать пользователя, у которого будет доступ sftp к /var/www/xy/backup/files/ и его подчиненных, но лучше нигде больше.

Должен ли я создать обычного пользователя, а затем поместить его в тюрьму в этот каталог (хотя я не уверен, что могу создать там тюрьму, потому что я не могу изменить /var/www/xy/backup/orderbackup/ право собственности на основную причину перестанет сохранять файлы), или, возможно, мне следует использовать какой-либо другой метод.

Я читал сообщения о RSSH, MySecureShell и т. Д., И этот подход был бы чем-то средним между безопасностью и сложностью настройки (я не гуру Linux).

Заранее спасибо!

OpenSSH (который также предоставляет функциональность sftp и scp) получил функциональность chroot в своих более поздних версиях. В основном вам просто нужно добавить строки, подобные этим, в ваш /etc/ssh/sshd_config файл.

Subsystem sftp internal-sftp

Match group sftpusers
     ChrootDirectory /var/www/xy/backup/files/
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Затем создайте новую группу под названием sftpusers с командой groupadd sftpusers.

Последний шаг - создать пользователя, принадлежащего группе sftpusers:

useradd -g sftpusers -d /var/www/xy/backup/files yourusername 
passwd yourusername

Затем просто перезапустите службу ssh: /etc/init.d/sshd restart и все должно быть готово.

Для этого вы можете использовать конфигурацию sshd. Создайте пользователя, например. fred затем добавьте следующее в свой файл sshd_config

Match user fred
    ChrootDirectory /var/www/xy/backup/files
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

Это заблокирует пользователя fred в желаемый каталог и его подкаталоги. Пользователь fred только нужно r--доступ к файлу и r-x в каталоги. Проверьте текущие разрешения, возможно, он уже может это сделать.

Может быть, вы могли бы определить новую группу только для этого пользователя sftp, изменить групповое владение каталогом на эту группу и установить бит setgid в каталоге?

Это может работать или не работать, в зависимости от того, как приложение создает каталоги.