Доступ по SFTP сродни тюрьме

У меня есть вопрос о создании пользователя с видом доступа в оболочку (на самом деле все, что требуется от этого пользователя, это 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).

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

3 ответа

Решение

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 для каталога?

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

Другие вопросы по тегам