Доступ по 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 для каталога?
Это может или не может работать, в зависимости от того, как приложение создает каталоги.