服务器:Ubuntu 12.04 LTS
我正在使用 openSSH,并创建了一个名为bob
who belong to group 的SFTP 用户sftponly
。我已将 bob chroot 到他的主目录,即/usr/share/nginx/www/bob/
。
bob 可以通过 SFTP 访问服务器并查看主目录,但他无法编辑目录中的文件。我已运行chown -R bob /usr/share/nginx/www/bob/*
让 bob 成为其文件的所有者,但他仍然无法编辑这些文件。
为什么会这样?
答案1
要正确 chroot sftponly 组成员,您需要设置此选项/etc/ssh/sshd_config
:
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /srv/chroot/%u
ForceCommand internal-sftp
要求 chroot 用户的主目录以及系统根目录之前的目录必须属于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
因为 user001 的 HOME 目录是在 chroot 调用之后评估的,所以他/她进入了该input
目录,其中写权限有效:
$ ls -lrtd /srv/chroot/user001/input
drwxrwx--- 2 user001 sftponly 4.0K Apr 07 17:55 /srv/chroot/user001/input