我对与命令--mount-proc
一起使用时的作用有点困惑。unshare
当我使用 时unshare -fp --mount-proc bash
,我注意到它会产生一个新的 PID 命名空间和一个新的 MNT 命名空间。
鉴于我位于新的 MNT 命名空间中,我尝试卸载其中一个循环设备,并注意到这并未反映在父 MNT 中(当我df -h
在父命名空间中运行时,挂载仍然显示)。
现在,我向前迈出了一步,在新的 MNT 命名空间中使用 创建了一个新的根pivot_root
,并卸载了原始根。正如预期的那样,新的命名空间现在具有不同的根。父命名空间仍然具有原始根目录。
-m
我的问题:如果我可以在不使用命令中的选项的情况下实现创建新的 MNT 命名空间unshare
,并且还可以为新进程创建隔离的根目录,那么 MNT 命名空间有什么不同的用途?
我将不胜感激专家的任何指导。
编辑:我修改了原来的帖子,其中说更改新命名空间中的根也会更改父命名空间中的根。我无法再重现这个。但我关于仅使用该--mount-proc
选项而不使用-m
with来创建新的 MNT 命名空间的问题unshare
仍然存在。
答案1
man unshare
--mount-proc
提及的描述
它还意味着创建一个新的挂载命名空间,因为
/proc
否则挂载会弄乱系统上的现有程序。
因此实际上--mount-proc
意味着-m
,以及您所看到的所有后果。这没什么不同,它是一个新的、私有的挂载命名空间。
该-m
选项本身仍然有用,因为新的挂载命名空间在没有/proc
.