如果没有 root 权限,如何检测是否处于 chroot jail 中?假设一个标准的 BSD 或 Linux 系统。我想到的最好办法是查看“/”的 inode 值并考虑它是否相当低,但我想要一种更准确的检测方法。
[edit 20080916 142430 EST]
仅仅查看文件系统是不够的,因为复制/boot 和/dev 之类的东西来欺骗 jailed 用户并不难。
[edit 20080916 142950 EST]
对于 Linux 系统,检查/proc 中的意外值是合理的,但是对于一开始就不支持/proc 的系统呢?
最佳答案
如果/是 ext2/ext3/ext4 文件系统的根目录,/的 inode 将始终为 2,但您可能会在完整的文件系统中进行 chroot。如果它只是 chroot(而不是其他虚拟化),您可以运行 mount 并将安装的文件系统与您看到的进行比较。验证每个挂载点都有 inode 2。
关于linux - 从内部检测 chroot jail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75182/