chroot后如何使unshare(CLONE_NEWUSER)成功?

chroot后如何使unshare(CLONE_NEWUSER)成功?

我打电话给取消共享(CLONE_NEWUSER)当以非 root 用户身份调用时,会返回 EPERM,因为 (http://man7.org/linux/man-pages/man2/unshare.2.html):

EPERM(自 Linux 3.9 起) CLONE_NEWUSER 在标志中指定,并且调用者处于 chroot 环境中(即,调用者的根目录与其所在的挂载命名空间的根目录不匹配)。

我用过枢轴_根(2)(当时,以 root 身份运行)而不是chroot(2)进入这个目录。我验证了跳过枢轴_根(2)呼叫使取消共享(CLONE_NEWUSER)以非 root 用户身份成功。但我两者都想要:枢轴_根(2)取消共享(CLONE_NEWUSER)。我尝试过添加取消共享(CLONE_NEWNS)就在之后枢轴_根(2),但这没有用,我仍然从取消共享(CLONE_NEWNS)。我怎样才能让它成功?

仅供参考,我需要这个,因为我想在类似 chroot 的环境中手动创建一个无根容器。

相关内容