更新:
我从来没有搞清楚过。相反,我最终只是使用了,jailkit
因为有大量(尽管有时已经过时)的使用文档。不过,我仍然想知道如何开始schroot
工作。
我找到了大量关于设置 schroot/debootstrap 的文档,以及大量关于监禁 sftp 的内容和一些关于创建 chrooted shell 的简单说明,但我找不到任何关于如何让这一切协同工作的内容。似乎大多数教程都是针对在隔离的构建环境中创建的,而这并不是我需要的。
我已经在 处设置了 schroot 环境/srv/chroot/systemid
。运行良好,我可以使用 顺利启动会话schroot -c systemid -u somejaileduser
。
我似乎无法正常工作的是 chrooting ssh 会话。我当前的配置如下:
Match Group jail
ChrootDirectory /srv/chroot/systemid
# other stuff to out law tcpforwarding and what not
这种方法有效,因为我获得了一个 chrooted ssh 会话,但它直接将我转储到 chroot 作为工作目录。我认为这是因为会话从未真正启动,因此/home
从未绑定到/srv/chroot/systemid/home
(如果ls /home
在 ssh 会话中这样做,则它是空的)。
那么我这里缺少的是配置步骤吗?
答案1
在许多这样的案例中,我想知道,不是限制每个用户帐户,而是简单地在主机上为每个用户提供一个小型虚拟机。
似乎收集每个用户可行 chroot jail 所需的所有文件是有问题的,很容易出现问题并且非常复杂。
答案2
sshd_配置具有可与 ChrootDirectory 一起使用的变量。
Match Group jail
# %u is replaced by the username, %h is the full home path
ChrootDirectory /srv/chroot/systemid/%u
#ChrootDirectory %h