![SFTP Chroot 寫入 chrooted /](https://rvso.com/image/760619/SFTP%20Chroot%20%E5%AF%AB%E5%85%A5%20chrooted%20%2F.png)
嘿,
我想在他的 / 中與 chroot 用戶一起寫,但我不能。
範例:我有/home/sftponly/
ChrootDirectory
裡面必須是另一個具有該使用者權限的目錄,否則我無法連線。
我希望它在連接的用戶看不到任何子目錄時可寫入。關於我做錯了什麼有什麼提示嗎?
我的 sshd_config
Match User sftponly
ChrootDirectory /home/sftponly
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
答案1
如果我理解正確的話,您希望您的使用者在 chroot 時能夠寫入他的主目錄。
當您使用 sftp 並啟用 chroot 進行連線時,會發生以下情況:
- 使用者被 chroot 到主「chroot」目錄(此處為
/home/sftponly
)- 主 chroot 必須由 root 擁有,對使用者來說是唯讀的。
- 然後用戶被chroot再次進入祂的主目錄,如
/etc/passwd
從主 chroot 開始所述。這主目錄對於使用者來說是可寫入的。
因此,如果 /etc/passwd 中有這樣一行:
sftponly:x:1002:1002:,,,:/home/sftponly:/bin/bash
sshd 將嘗試將您的使用者 chroot 到/home/sftponly/home/sftponly
.
所以如果你絕對需要要 chroot 到這個精確路徑,/home/sftponly
您必須將主 chroot 設為sshd_config
,例如/home
:
ChrootDirectory /home
然後設定主目錄sftply進入:/etc/passwd
/sftponly
sftponly:x:1002:1002::/sftponly:/bin/bash
然後/home/sftponly
對於 sftponly 用戶來說是可寫的,沒問題。