我可能遗漏了一些非常明显的内容,但是否可以指定用户可以通过 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
Run Code Online (Sandbox Code Playgroud)
我可以使它对“管理员”和“WebDev1”用户正常工作,但不能对其他 2 个用户正常工作。
对于“Manager1”用户,我希望允许访问(包括子目录):
/data/vhosts
/usr/share/phpMyAdmin
Run Code Online (Sandbox Code Playgroud)
这是在使用 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
Run Code Online (Sandbox Code Playgroud)
将特定用户监禁到特定文件夹是相当简单的。根据您指定各种用户可以访问的文件夹列表的问题,您只需进行一些体力劳动,即可创建一个单独的组并将其与您要使用的特定文件夹进行匹配,然后将这些用户放入这些相关组中(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 用户写入。文件夹不能是组可写的 - 即使组是 root
这是另一个例子:https : //askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups
| 归档时间: |
|
| 查看次数: |
14120 次 |
| 最近记录: |