SFTP Chroot 寫入 chrooted /

SFTP Chroot 寫入 chrooted /

,

我想在他的 / 中與 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 用戶來說是可寫的,沒問題。

相關內容