加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Linux Namespace : Mount

发布时间:2020-12-15 07:18:42 所属栏目:安全 来源:网络整理
导读:mount namespace 用来隔离文件系统的挂载点,这样进程就只能看到自己的 mount namespace 中的文件系统挂载点 。 $ /demo /demo -p iso1/ -p iso2/ -o .iso ./ -o .iso ./iso2 $ /mnt/iso1 /mnt/iso2 第一步 ,我们打开两个 bash shell,为了方便区分,分别把

mount namespace 用来隔离文件系统的挂载点,这样进程就只能看到自己的 mount namespace 中的文件系统挂载点。

$ /demo && /demo && -p iso1/ -p iso2/-o .iso ./-o .iso ./iso2

$ /mnt/iso1 /mnt/iso2

第一步,我们打开两个 bash shell,为了方便区分,分别把它们称为为 shell1 和 shell2。在 shell1 中执行挂载操作,把 1.iso 挂载到 /mnt/iso1 目录:

$ .iso /mnt/iso1

第二步,先在 shell2 中执行 sudo unshare -m,然后在两个 shell 中分别执行 readlink /proc/$$/ns/mnt 命令:

第三步,通过 mount 命令查看两个 mount namespace 中的挂载点信息:

第四步,我们在 shell2 中执行一些 mount 和 umount 操作:

$ .iso /mnt/ /mnt/iso1

Shared subtree 的核心是允许在 mount namespace 之间自动地或者是受控地传播 mount 和 umount 事件。

$ /demo && /demo && =/dev/zero bs=1M count= of=./ =/dev/zero bs=1M count= of=./ =/dev/zero bs=1M count= of=./ =/dev/zero bs=1M count= of=.///// disk1 disk2

第一步,我们打开两个 bash shell,为了方便区分,分别把它们称为为 shell1 和 shell2。在 shell1 中执行挂载操作,分别以 shared 和 private 方式挂载 disk1 和 disk2:

第二步,在 shell2 中执行 sudo unshare -m --propagation unchanged,然后在两个 shell 中分别执行 readlink /proc/$$/ns/mnt 命令:

第三步,分别在 shell1 和 shell2 中执行 cat /proc/self/mountinfo |grep disk| sed 's/ - .*//' 命令查看挂载点信息:

)。第四步,在 shell2 中分别在 disk1 目录下创建 disk3 目录,在 disk2 目录下创建 disk4 目录,并把 disk3.img 挂载到 ./disk1/disk3 目录,把 disk4.img 挂载到 ./disk2/disk4 目录:

$ ./disk1/disk3 ./disk2/ disk3.img ./disk1/ disk4.img ./disk2/disk4

因为 /demo/disk1 的挂载方式为 shared,所以它的子挂载点 /demo/disk1/disk3 被传播到了 shell1 所在的 mount namespace 中。而 /demo/disk2 的挂载方式为 private,所以它的子挂载点 /demo/disk2/disk4 不会被传播。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读