在非特权命名空间沙箱中挂载proc

han*_*wen 5 linux sandbox linux-namespaces

我正在尝试使用Linux命名空间创建沙盒环境.我在https://github.com/swetland/mkbox上找到了一个很好的例子,大致可以做我想要的,但我希望在沙盒中出现一个可靠的/ proc.我怎样才能做到这一点?

我尝试将proc FS挂载到"proc"上,但是在EINVAL中失败了.当我尝试正常安装"proc"时,它会产生EPERM.

想法?

han*_*wen 6

一位本地大师为我解决了这个问题:proc必须使用(未记录的?)MS_REC标志,如下所示:

    ok(mount, "/proc", "proc", NULL, MS_REC|MS_BIND, NULL);
Run Code Online (Sandbox Code Playgroud)

如果没有设置CLONE_PIDNS,绑定挂载只会做一些有用的事情.

  • 我刚遇到这个问题,而你的StackOverflow答案解决了这个问题并使我免于拔掉头发.而且Swetland实际上_wrote_ mkbox代码_at my house_.小世界.PS你之所以需要MS_REC(我现在记得读过这篇文章)的原因是因为/ proc在其中安装了其他东西(例如/ proc/sys/fs/binfmt_misc),如果你不递归地安装它们你也可能是揭示有意通过翻身隐藏的东西. (3认同)