
我正在嘗試建立使用者 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。