gpt4 book ai didi

c - 如何允许子进程创建嵌套的用户命名空间?

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:14 27 4
gpt4 key购买 nike

我使用以下代码在新的用户命名空间中创建一个子进程:

pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER, NULL, NULL, NULL);

在父进程中,我编写了 uid_mapgid_map 并将当前的 uid 和 pid 映射到它自己。

在子进程中,我将调用execvp 来启动一个新进程,该进程可能会调用带有CLONE_NEWUSER 标志的unshare,该操作在新的用户命名空间中是不允许的。

我的问题是,是否可以允许对 execvp 启动的进程执行 unshare 操作?

我按照 user_namespace 的手册页中的示例使用 pipe 来确保 uid_mapgid_map在调用 execvp 之前编写。

最佳答案

我猜你的映射有点不正确。从 man 2 unshare 中,您似乎在点击:

       EPERM  CLONE_NEWUSER was specified in flags, but either  the  effective
user ID or the effective group ID of the caller does not have a
mapping in the parent namespace (see user_namespaces(7)).

关于c - 如何允许子进程创建嵌套的用户命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57978421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com