我正在尝试创建 chroot 用户,但我想授予他创建和删除文件和目录的权限。我在 virtualbox 上安装了 Ubuntu 服务器,我使用 WinSCP 从我的主机 Windows 7 连接到它。我还通过 ssh 使用 Cygwin 连接到 Ubuntu 服务器。这些是 chroot 用户主目录“sites”的权限:
root@ubuntu:/var/www# ls -l total 12 -rw-r--r-- 1 root root 177 2015-02-06 20:57 index.html -rw-r--r-- 1 root root 20 2015-02-07 18:04 index.php drwxr-xr-x 3 root root 4096 2015-02-08 22:23 sites
通过此设置,我可以使用 chroot 用户帐户连接到服务器,但不允许我创建或删除文件。我尝试将权限更改为 bob:root 和 bob:sftponly,但无法连接到服务器。“bob”是 chroot 用户,“sftponly”是他的组。
我也无法使用 Cygwin 通过 sftp 连接,这很奇怪,因为我可以使用 WinSCP 连接。
这些是 sshd_config 中的设置
子系统 sftp internal-sftp
匹配组 sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
答案1
我找到了问题所在。我必须将用户 bob 的自定义主目录更改为/var/www/sites
。/var/www/
然后授予目录root:root
的权限www
和目录bob:sftponly
的权限sites
。现在我可以使用 chrooted 用户登录并在sites
目录中写入,但不能在www
目录中写入,我猜这是它应该如何工作的正常方式。