SFTP 用户无法编辑或创建文件

Geo*_*ith 6 linux permissions ssh chroot sftp

服务器:Ubuntu 12.04 LTS

我正在使用 openSSH 并创建了一个名为bobwho owns group 的 SFTP 用户sftponly。我已将 bob chroot 到他的主目录,即/usr/share/nginx/www/bob/.

bob 能够通过 SFTP 连接到服务器并且查看主目录,但是他无法编辑他目录中的文件。我已经运行chown -R bob /usr/share/nginx/www/bob/*让鲍勃成为他的文件的所有者,但他仍然无法编辑它们。

为什么会这样?

daw*_*wud 6

要正确地 chroot 一个 sftponly 组成员,您需要在以下位置设置此选项/etc/ssh/sshd_config


Subsystem       sftp    internal-sftp
Match Group sftponly
        ChrootDirectory /srv/chroot/%u
        ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

要求 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
Run Code Online (Sandbox Code Playgroud)

你需要一个这样的目录结构:


$ tree /srv/chroot
/srv/chroot
??? user001
?   ??? input
Run Code Online (Sandbox Code Playgroud)

因为 user001 的 HOME 目录是在 chroot 调用之后评估的,所以他/她会进入该input目录,在那里写权限是有效的:


$ ls -lrtd /srv/chroot/user001/input
drwxrwx--- 2 user001 sftponly 4.0K Apr 07 17:55 /srv/chroot/user001/input
Run Code Online (Sandbox Code Playgroud)