HUB*_*HUB 4 linux process namespace
我正在尝试输入 PID 命名空间,该命名空间中的 PID 为 1 的进程来自使用CLONE_NEWPID
. 我不断收到Invalid argument
错误。
换句话说,我用clone()
和CLONE_NEWPID
标记克隆了一个子进程。在子进程中之后,我打开/proc/1/ns/pid
读取并尝试setns()
使用上面打开的描述符执行。setns()
失败Invalid argument
。
完整程序代码:https : //gist.github.com/k-popov/ef87076785d8264ac66f
这是某种(安全?)机制,可以防止进入 PID 1 的命名空间或父级的命名空间。我知道 User 命名空间有一个,但 PID 呢?
这是一项安全功能,在PID 命名空间手册页中进行了描述。
虽然进程可以自由地进入子 PID 命名空间(例如,使用 setns(2) 和 CLONE_NEWPID),但它们可能不会向另一个方向移动。也就是说,进程不能进入任何祖先命名空间(父、祖父等)。更改 PID 命名空间是一种单向操作。