為什麼可以使用此 sftp 配置保留 CHROOT?

為什麼可以使用此 sftp 配置保留 CHROOT?

我正在嘗試建立使用者 lenny,該使用者在資料夾中擁有讀寫權限/home/lenny/,並且沒有 shell,只能透過 SFTP 存取。我正在執行以下操作:

useradd lenny
mkdir /home/lenny
usermod -d /home/lenny lenny
passwd lenny
chown lenny:lenny /home/lenny
chmod 755 /home/lenny
usermod -s /bin/false myuser

然後我修改了/etc/ssh/sshd_config

Subsystem sftp internal-sftp`  

Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp

現在,當我這樣做時,我可以透過執行和sftp lenny@server輕鬆離開 CHROOT ,我看到了一切!cd /ls -la

這是為什麼?我不明白,配置應該沒問題,還是我錯了?

答案1

更改後是否重新啟動 sshd 服務/etc/ssh/sshd_config

sudo /etc/init.d/ssh restart

確保 sftp 使用者(在本例中/home/lenny)的 chroot 目錄由 root 而不是 sftp 使用者擁有。chmod 755是正確的。

另外,我會添加以下兩行以提高安全性:

Match User lenny
    ChrootDirectory /home/lenny
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

重新啟動您的 sshd 服務,您應該擁有所需的 chroot。

相關內容