lbr*_*dao 5 linux chroot mount tmp
在下面的链接文章中,他们解释了如何创建“chroot”/tmp 目录。我对他们的所作所为有点困惑。有人能解释一下以下命令的作用吗?
1. # mkdir -p /root/chroot /root/tmp
2. # mount --bind / /root/chroot
3. # mount --bind /root/tmp /root/chroot/tmp
4. # chroot /root/chroot
Run Code Online (Sandbox Code Playgroud)
在第一步中,为什么他们创建/root/tmp而不是/root/chroot/tmp?
第一个安装命令会影响第二个安装命令吗?第二步,他们将新目录/root/chroot绑定到根目录。这是否意味着第三步/root/tmp实际上指向/root/chroot/root/tmp?/root/chroot/tmp从哪里来?这就是我感到困惑的部分。
这背后的逻辑是什么?
在步骤 2 中,您将绑定安装/在/root/chroot.
如果你创建步骤2.5,ls /root/chroot你会发现列出的所有目录/;包括系统的/tmp目录。
如果您touch /root/chroot/test会看到这test也在 的输出中ls /。如果您rm /test会注意到它也从/root/chroot/. 所以/和/root/chroot/是完全相同的地方。
如果您想更详细地查看,请运行stat /,然后stat /root/chroot您会发现两者都返回相同的Inode. AnInode是一种数据结构,引用磁盘上的特定文件/目录。由于它们都返回相同的内容Inode,因此两个路径都指向完全相同的目录。
因此,第 3 步将目录挂载到已绑定挂载的/root/tmp系统目录上。/tmp/root/chroot
当您执行步骤 4 时,您将使用in 目录而不是系统范围的目录chroot进入 chroot 状态。这样,chroot 就不会与系统上的每个其他用户共享 a。//tmp/root/tmp/tmp
| 归档时间: |
|
| 查看次数: |
3616 次 |
| 最近记录: |