如何禁止 chroot 用户使用“cd ..”

如何禁止 chroot 用户使用“cd ..”

我想限制用户访问文件(就在他的目录之外),所以我使用了 chroot,并在登录时将受限制的目录作为他的登陆目录。
但是,如果我这样做,cd ..该用户也可以访问他的目录之外的所有内容。如何避免这种情况?

我用过这个:

adduser --home Rest_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh rest_user

答案1

使用 SSH 时,可以使用其称为 SFTP 的子系统(不要与 FTPS 混淆)。 SFTP 提供了一个 shell,用户可以在其中执行任何常见文件任务,例如cpmvlscdmkdir...rm但是,由于 chroot 环境,驻留在其中的其他程序/bin无法通过这种方式访问​​。此 chroot 环境是由 SSH 守护程序设置的,因此无需纠结于细节。

要为某个 SSH 用户配置 chroot,请将其放入 sshd 配置文件中,主要位于/etc/ssh/sshd_config

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

您可能还希望为此登录设置其他标志:

  AllowTCPForwarding no
  X11Forwarding no

有关更多详细信息,请参阅 的手册页sshd_config (5)

相关内容