访问另一个进程的挂载命名空间

Gim*_*ima 4 linux mount namespaces

有没有办法检查另一个挂载命名空间的文件和目录?

setns(2)系统调用似乎能够将线程移动到另一个命名空间,但如果此功能尚未内置到程序(shell、文件服务器等)中,则似乎需要执行新进程。而且由于目标挂载命名空间可能不包含所需的二进制文件,这是一个问题。

编辑:
我正在寻找的是一种“用户友好”的方式来访问命名空间中的文件。例如,我可以想象有一种方法可以将命名空间挂载在主机系统的某处。但因为我不知道什么是可能的,所以我在问。

wom*_*ble 7

如果您想要一个有保证的令人满意的答案,您将需要定义“用户友好”,但根据您的需要,/proc/<PID>/root获取特定进程所看到的整个文件系统层次结构,以及/proc/<PID>/mounts(和/proc/<PID>/mountinfo)安装在何处的内容,可能会让您找到你需要去。如果您只有一个命名空间的文件描述符,那么您的处境就不那么令人愉快了,因为我不知道您可以通过任何方式从文件描述符转到命名空间中已经存在的 PID,但如果那是您的位置来自,你很久以前离开了“用户友好”的预订,并且可以预料到扭曲。

  • `/proc/&lt;PID&gt;/root/` 正是我正在寻找的东西,谢谢!❤️ (2认同)