【问题标题】:Mount Namespace: Normalize file path to init/root mount namespace挂载命名空间:将文件路径规范化为 init/root 挂载命名空间
【发布时间】:2015-02-04 13:25:14
【问题描述】:

我查找了有关 Linux 内核中挂载命名空间的各种信息来源,但我不得不说,我找不到太多关于它在底层如何工作的信息(结构的布局以及它们如何相互关联)。

我想做的是在进程 X 的挂载命名空间中获取给定路径,并在 init/root 进程命名空间中获取相同的文件路径。

例子:

block device A has a file as blah/whatever/fileX

In the init/root process mount namespace, this bdev A is mounted on folder /root making the path /root/blah/whatever/fileX

In the process X mount namespace, this bdev A is mounted on folder /myfolder making the path /myfolder/blah/whatever/fileX

当使用路径名进入内核的特定系统调用来自进程 X 的世界时,我想采用路径名 /myfolder/blah/whatever/fileX 并将其转换为 init/root 的世界路径名 /root/blah/whatever/fileX(如果文件不能通过 init/root 的任何挂载点访问,则为 NULL)

一些相关问题: Linux - understanding the mount namespace & clone CLONE_NEWNS flag

【问题讨论】:

    标签: linux-kernel


    【解决方案1】:

    如果我理解正确,您并不是在寻找挂载命名空间,而只是在挂载系统调用或 cli 中称为绑定挂载的选项。

    对于 root/init,设备安装在 blah/whatever/fileX ... 您可以在 /myfolder/blah ... .

    现在,除非您寻求隔离,即您不希望任何其他进程查找这些挂载点,否则您可以使用挂载命名空间。最简单的做法是使用“unshare”启动 processX

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 2018-07-19
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多