Вероятно, я упускаю что-то очевидное, но возможно ли указать список папок (не только домашний каталог пользователя), к которым пользователь может получить доступ через 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