我有一台 Ubuntu 服务器,上面有几个网站。
我想为我的开发人员创建 SFTP 帐户并仅允许他们访问单个网站。
例如,开发人员 A 只能访问网站 A,开发人员 b 只能访问网站 B
我创建了用户,将他们的主文件夹分别设置为网站 A 和网站 B,然后使用 chown 使他们成为网站 A 和网站 B 的所有者。
问题是开发人员仍然可以在其主文件夹之外导航并访问上一级的所有文件夹(仅具有读取权限而没有其他权限)。
有没有办法阻止开发人员查看其主目录之外的任何其他文件夹?(因此对于 developer_A,我希望他被困在 /html/website_A)
如果尝试在 sshd_confing 中使用 Match User 如下:
Match User developer_A
ChrootDirectory /html/website_A
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
但是一旦我这样做,我就无法再以该用户身份连接到服务器,即使 /html 由 root 拥有并且没有其他人对 /html 具有写权限。
有没有简单的方法可以实现我想要的?任何帮助我都感激不尽。提前致谢!
答案1
还/html/website_A
需要由 root 拥有,并且其他人无法写入,或者您只能这样chroot
做/html/
。这是 的要求,chroot
您无法在 OpenSSH 中解决这个问题,否则服务器将容易受到 CVE-2009-2904 的攻击。
用户不能对其 chroot 的 root 具有写权限。就这样。