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

AWS EC2 Linux ограничивает пользователя SFTP своим домашним каталогом, когда пользователи подключаются из WinSCP

Я работаю над решением, позволяющим ограничить пользователя домашним каталогом или определенным каталогом.

Мне нужно ограничить пользователя для сценария ниже, у нас есть несколько установок 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