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 次 |
最近记录: |