首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在非特权命名空间沙箱中挂载proc

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

Stack Overflow用户
提问于 2014-05-02 06:12:04
回答 2查看 1.4K关注 0票数 5

我正在尝试使用Linux名称空间创建一个沙箱环境。我在https://github.com/swetland/mkbox上找到了一个很好的例子,它大致可以做我想要的事情,但我希望沙箱中出现一个可信的/proc。我该怎么做呢?

我尝试在" proc“上绑定挂载proc FS,但使用EINVAL失败。当我尝试正常挂载"proc“时,它会生成EPERM。

想法?

EN

回答 2

Stack Overflow用户

发布于 2014-05-03 03:11:15

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

代码语言:javascript
复制
    ok(mount, "/proc", "proc", NULL, MS_REC|MS_BIND, NULL);

显然,只有在没有设置CLONE_PIDNS的情况下,绑定挂载才会做一些有用的事情。

票数 6
EN

Stack Overflow用户

发布于 2016-02-10 02:06:43

我没有仔细查看您的提交,以确定这是否是您的问题,但如果您有CLONE_NEWUSER | CLONE_NEWNS但没有CLONE_NEWPID,就会发生EPERM。这是因为为了挂载proc,您需要在与当前PID名称空间相对应的用户名称空间中使用CAP_SYS_ADMIN,而不是在当前用户名称空间中。

Linux4.4、fs/proc/root.clines 112–117

代码语言:javascript
复制
ns = task_active_pid_ns(current);
options = data;

/* Does the mounter have privilege over the pid namespace? */
if (!ns_capable(ns->user_ns, CAP_SYS_ADMIN))
        return ERR_PTR(-EPERM);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23417521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档