Linux

SFTP 使用者無法編輯或創建文件

  • April 7, 2013

伺服器:Ubuntu 12.04 LTS

我正在使用 openSSH 並創建了一個名為bobwho 屬於 group的 SFTP 使用者sftponly。我已將 bob chroot 到他的主目錄,即/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

要求 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

引用自:https://serverfault.com/questions/497011