为什么可以使用此 sftp 配置离开 CHROOT?

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,我看到了一切!

这是为什么???我不明白,配置应该没问题,还是我错了?

Geo*_*e M 5

更改后是否重新启动了 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。

  • 那么用户 lenny 不能在`/home/lenny` 中上传文件或创建目录吗?确保 `/home/lenny` 组所有权是 `lenny` 和 `chmod 775 /home/lenny`。 (2认同)