【发布时间】:2020-01-18 13:32:35
【问题描述】:
我使用以下代码在新的用户命名空间中创建子进程:
pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER, NULL, NULL, NULL);
在父进程中,我写了uid_map和gid_map,并将当前的uid和pid映射到自己。
在子进程中我会调用execvp来启动一个新进程,该进程可能会调用unshare并带有CLONE_NEWUSER标志,在新的用户命名空间中是不允许的。
我的问题是,是否可以允许unshare对execvp启动的进程进行操作?
我按照 user_namespace 手册页中的示例使用 pipe 确保在调用 execvp 之前写入 uid_map 和 gid_map。
【问题讨论】: