將 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”使用者正常工作,但不能對其他 2 個使用者正常工作。
對於“Manager1”使用者,我希望允許訪問(包括子目錄):
/data/vhosts /usr/share/phpMyAdmin
這是在使用 SSHD 的 Centos 7 系統上。我將不勝感激有關此的任何幫助,因為它已經讓我困惑了好幾個小時了。
與你想做的相關的關鍵詞是SFTP chroot jail
您需要修改您的 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
將特定使用者監禁到特定文件夾是相當直接的。根據您指定各種使用者可以訪問的文件夾列表的問題,這只是您的一些體力勞動,創建一個單獨的組並將其與您要使用的特定文件夾匹配,並將這些使用者放入那些相關組(s) 與您要授予他們入獄 sftp 訪問權限的文件夾相匹配。例如,將使用者
dave
放入兩組sftp1_group
並sftp2_group
允許該使用者訪問多個文件夾。一個很好的例子也可以在這裡找到: https ://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error
注意
直到 chroot 主目錄的所有文件夾都必須由 root 使用者擁有並且只能由 root 使用者寫入。文件夾不能是組可寫的 - 即使組是根
這是另一個例子:https ://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups