我使用的是 CentOS 7。
我需要向 ssh 用户授予 shell 访问权限,但将他们限制在监狱中。我已经使用jailkit来设置监狱。我已经复制了用户在监狱环境中所需的所有必要的库和二进制文件。监狱目录结构如下所示:
[root@server jail]# pwd
/var/jail
[root@server jail]# ls -l
total 8
drwxr-xr-x. 2 root root 26 May 28 16:17 bin
drwxr-xr-x. 2 root root 41 May 28 16:18 dev
drwxr-xr-x. 3 root root 4096 May 28 16:22 etc
drwxr-xr-x. 3 root root 19 May 28 16:14 home
drwxr-xr-x. 2 root root 4096 May 28 16:09 lib
lrwxrwxrwx. 1 root root 9 May 28 16:14 lib64 -> usr/lib64
drwxr-xr-x. 7 root root 65 May 28 16:18 usr
我已使用“jk_jailuser”将用户主目录移动到/var/jail/home。
但是,当用户登录时,他可以 cd 进入监狱环境中的其他目录。我希望用户被限制在他/她的主目录中,并且不能 cd 到任何其他目录。
我尝试在 sshd_config 中使用 Match group 指令,如下所示:
Match group sshusers
ChrootDirectory /var/jail/
X11Forwarding no
AllowTcpForwarding no
但这是我在设置后尝试通过 ssh 登录时收到的错误:
Could not chdir to home directory /var/jail/./home/user: No such file or directory
/usr/sbin/jk_chrootsh: No such file or directory
我无法登录
我真的被困在这里了。我不知道如何解决这个问题。有人可以帮忙吗?如何在监狱环境中将 SSH 用户限制在其主目录中?
答案1
用户的主目录应该相对于 chroot 路径。如果要用/var/jail/home/user
作主目录,则必须将用户的主目录设置为/home/user
.