Joh*_*mBF 5 linux chroot ssh sftp debian
我正在尝试创建用户 lenny,该用户在文件夹中/home/lenny/具有读写权限,并且没有外壳,但只能通过 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
Run Code Online (Sandbox Code Playgroud)
然后我修改了/etc/ssh/sshd_config:
Subsystem sftp internal-sftp`
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做时,sftp lenny@server我可以通过执行cd /和轻松离开 CHROOT ls -la,我看到了一切!
这是为什么???我不明白,配置应该没问题,还是我错了?
更改后是否重新启动了 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
Run Code Online (Sandbox Code Playgroud)
重新启动您的 sshd 服务,您应该拥有所需的 chroot。