服务器:Ubuntu 12.04 LTS
我正在使用openSSH并创建了一个名为bob的SFTP用户,该用户属于sftponly组.我把bob chro到他的主目录,即/usr/share / Nginx / www / bob /.
bob能够SFTP到服务器上,查看是主目录,但是他无法编辑目录中的文件.我已经运行chown -R bob /usr/share / Nginx / www / bob / *使bob成为他的文件的所有者,但他仍然无法编辑它们.
为什么会这样?
解决方法
要正确chroot sftponly组成员,您需要在/ etc / ssh / sshd_config中设置此选项:
Subsystem sftp internal-sftp Match Group sftponly ChrootDirectory /srv/chroot/%u ForceCommand internal-sftp
chrooted用户的主目录和一直到系统根目录的目录必须属于root用户:root
给定用户的以下值:
$id user001 uid=1003(user001) gid=1003(user001) groups=1006(sftponly) $grep user001 /etc/passwd user001:x:1003:1003::/input:/sbin/nologin
你需要一个像这样的目录结构:
$tree /srv/chroot /srv/chroot ├── user001 │ └── input
因为在chroot调用之后评估user001的HOME目录,所以他/她登陆输入目录,其中写权限有效:
$ls -lrtd /srv/chroot/user001/input drwxrwx--- 2 user001 sftponly 4.0K Apr 07 17:55 /srv/chroot/user001/input