![为什么可以用这个 sftp 配置离开 CHROOT?](https://linux22.com/image/22483/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%20sftp%20%E9%85%8D%E7%BD%AE%E7%A6%BB%E5%BC%80%20CHROOT%EF%BC%9F.png)
我正在尝试创建用户 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。