相对于 sshd 监狱根目录的文件结构



我正在为我的系统(archlinux)上的某些用户设置一个sshd监狱。 在不赘述的情况下,我想将问题的范围保持在最小。

设置/etc/ssh/sshd_config

Match group jaileduser
          ChrootDirectory /var/jailedusers
          X11Forwarding no
          AllowTcpForwarding no

以及类似于以下内容的系统/etc/password条目:

testuser1:x:2001:2000::/home/testuser1:/bin/bash

所以问题是:/home/testuser1的主目录是否相对于sshd_config条目/var/jailedusers即 passwd 条目应该/var/jailedusers/home/testuser1还是/home/testuser1 /var/jailedusers /home/testuser1目录 - AND 是同一条船上的外壳 - passwd 条目是/var/jailedusers/bin/bash还是简单地/bin/bash

最后,登录时系统/etc/passwd读取或/var/jailedusers/etc/passwd根据sshd_config条目读取。

基于手册页:

Specifies the pathname of a directory to chroot(2) to after
authentication.  All components of the pathname must be root-
owned directories that are not writable by any other user or
group.  After the chroot, sshd(8) changes the working directory
to the user's home directory.

因此/etc/passwd需要包含相对于系统根目录的路径(即 /bin/bash/home/testuser1)和系统的根,在chroot之后,实际上是/var/jailedusers的(这意味着/var/jailedusers/home/testuser1将是实际的家,/var/jailedusers/bin/bash实际的shell)。

要回答问题的第二部分,sshd将读取/etc/passwd,执行身份验证,然后chroot /var/jailedusers

请注意,/var/jailedusers还需要包含其他文件,例如bash所需的共享库和一组最小的/dev条目(例如 /dev/null )。

相关内容

  • 没有找到相关文章

最新更新