后未能使用 makejail, 我跟着如何设置监狱使用脚本(这个脚本适用于 Debian etch,但我使用的是 lenny -- 似乎运行正常)。但是,它为用户提供了一个非常有限的环境,几乎没有可用的应用程序(例如没有 vim、emacs、cat、tail 等)。
为了解决 cat 和 tail 问题,我只需将二进制文件从 复制/bin
到 即可/home/jail/bin
(感觉有点不对劲)。至于其他应用程序,我只需使用 ,mount --bind /usr /home/jail/usr
这样用户就可以访问大多数内容(我还必须安装/lib
和/etc/alternatives
)。
现在emacs
似乎vim
运行正常,但我并不完全相信这是最好的方法——是否有更优雅和可维护的方法,或者监禁用户通常是一项艰巨的任务?
答案1
监禁用户通常是一项艰巨的任务。
我不确定您的实现是否正确,但几乎可以肯定的是,您对 /usr 和 /lib 的绑定挂载会破坏监狱。这就像为囚犯提供通往外界的私人隧道……这正是 chroot 应该避免的。
相反,您需要设置您的监狱创建脚本来将被监禁的用户所需的一切复制到他们自己的私人环境中,就像您开始使用cat
和所做的那样tail
。