一切都在问题之中。当我尝试将 chroot 与“.”一起使用时 或完整的路径名作为参数,perror 告诉我“不允许操作”。如果我的问题的答案是肯定的,还有其他方法可以更改根目录吗?(没有使用 strcmp() / strncmp() 的野蛮方法)
谢谢 !
chroot
只能由root
他/她/自己使用。不,不会有任何其他方式不影响安全性。
来自维基百科
只有 root 用户可以执行 chroot。这是为了防止用户将 setuid 程序放入特制的 chroot 监狱(例如,使用伪造的 /etc/passwd 和 /etc/shadow 文件),从而欺骗它进行权限提升。
看到这里的文章。
尝试一个名为PRoot的工具 ,它基于 ptrace 和 syscall 检测,其中一个可能的用例是实现类似 chroot 的东西。
你可以试试fakechroot chroot
从用户空间,您可以使用 schroot 命令。在 /etc/schroot/schroot.conf 中添加几行
[xenial]
description=Ubuntu 16.04 (xenial)
type=directory
directory=/srv/chroots/xenial
aliases=xenial-lts
profile=minimal
users=bob
personality=linux64
然后从您的用户帐户:
schroot -c xenial