Ограничить пользователя SFTP несколькими папками

Ограничить пользователя SFTP несколькими папками

Вероятно, я упускаю что-то очевидное, но возможно ли указать список папок (не только домашний каталог пользователя), к которым пользователь может получить доступ через SFTP?

например

Admin -> Full root access  
WebDev1 -> Access to the primary vhost folder and sub directories  
SysAdmin1 -> Access to all folders, except the vhost folder  
Manager1 -> Access to vhost folder, and phpMyAdmin install folder  

Я могу сделать так, чтобы это работало нормально для пользователей «Admin» и «WebDev1», но не для двух других.

Для пользователя «Manager1» я хочу разрешить доступ к (включая подкаталоги):

/data/vhosts  
/usr/share/phpMyAdmin  

Это на системе Centos 7 с использованием SSHD. Я был бы признателен за любую помощь по этому поводу, так как это озадачивает меня уже несколько часов.

решение1

ключевые слова, связанные с тем, что вы хотите сделать:СФТП chroot тюрьма

вам необходимо изменить ваш sshd_config, сначала раскомментируйте строку для включения SFTP, что будет соответствовать чему-то вроде этого:

Subsystem sftp /usr/lib64/ssh/sftp-server

В нижней части sshd_config у вас может быть что-то из следующего в шаблоне, который закомментирован. Вам понадобится что-то конкретное вроде этого:

# jail only user dave to folder /dave_sftp/
Match User dave
   ChrootDirectory /dave_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail only user ron to folder /ron_sftp/
Match User ron
   ChrootDirectory /ron_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp1_group to the folder /sftp1_group/
Match Group sftp1_group
   ChrootDirectory /sftp1_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp2_group to the folder /sftp2_group/
Match Group sftp2_group
   ChrootDirectory /sftp2_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

Привязка конкретного пользователя к конкретной папке довольно проста. Согласно вашему вопросууказать список папок, к которым могут иметь доступ различные пользователи, это просто немного ручной работы с вашей стороны, создание отдельной группы и сопоставление ее с определенной папкой, которую вы хотите использовать, и помещение этих пользователей в те соответствующие группы, которые соответствуют папкам, к которым вы хотите предоставить им доступ jailed sftp. Например, поместите пользователя daveв обе группы sftp1_groupи , sftp2_groupчтобы разрешить этому пользователю доступ к нескольким папкам.

Очень хороший пример можно найти здесь: https://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error

будьте внимательны к

Все папки вплоть до chroot home должны принадлежать и быть доступны для записи только пользователю root. Папки не могут быть доступны для записи группе, даже если группа root

вот еще один пример:https://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups

Связанный контент