Я работаю над решением, позволяющим ограничить пользователя домашним каталогом или определенным каталогом.
Мне нужно ограничить пользователя для сценария ниже, у нас есть несколько установок Wordpress в webroot /var/www/html/wordpress1
и /var/www/html/wordpress2
, Мне нужно создать пользователя и установить новый домашний каталог пользователя как /var/www/html/wordpress2/wp-content
и когда этот новый пользователь соединился с паролем с помощью WinSCP, пользователь должен иметь доступ только /var/www/html/wordpress2/wp-content
и пользователь не может выйти из каталога.
Я выполнил следующие шаги, чтобы создать пользователя и группу, установить домашний каталог пользователя и изменить sshd_config
но когда пользователь подключается к серверу с помощью Winscp, он по-прежнему может получить доступ к любому каталогу на сервере.
useradd -g sftpgroup -d /var/www/html/wordpress2/wp-content sftpuser1
sudo passwd sftpuser1
Изменен /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /home
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
После настройки новый пользователь может видеть все остальные папки на сервере.
Надеюсь, эта диаграмма поможет понять мою проблему введите описание изображения здесь
Может ли кто-нибудь помочь мне с каким-то решением
Если вы привяжете пользователей к /home
и все пользователи имеют свои дома как подпапки /home
, тогда пользователи действительно могут видеть все дома.
Вы, наверное, хотели:
ChrootDirectory /home/%u
Или даже лучше:
ChrootDirectory %h
Видеть ChrootDirectory
документация и список поддерживаемых токенов.
Боковое примечание: у вас есть ваши директивы с отступом под Subsystem
, что создает впечатление, будто они должны использоваться только для SFTP. Не будут, они глобальны. На самом деле отступ не имеет смысла в sshd_config
. Все, что имеет значение, это если некоторые Match
директивы предшествуют директиве. По этой причине директивы обычно имеют отступ после Match
. Но это только для использования людьми, серверу SSH все равно.
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no