linux在sudo下设置uid\u映射

linux在sudo下设置uid\u映射,linux,containers,Linux,Containers,假设我有一个进程A,它clones进程B带有标志clone_NEWUSER | clone_NEWPID | clone_NEWNS,这个进程B具有pid=pid。然后在进程A中,我写入/proc/PID/uid\u map字符串0 1000 1(1000是我用户的uid) 如果我在我的用户下运行A,/A这可以正常工作,并且在进程中Bgetuid()会给出0。但是如果我像sudo/A那样运行A,那么B中的getuid()会给我65534(nobody) 当我在sudocode中搜索时,它没有创建

假设我有一个进程
A
,它
clone
s进程
B
带有标志
clone_NEWUSER | clone_NEWPID | clone_NEWNS
,这个进程
B
具有pid=pid。然后在进程
A
中,我写入
/proc/PID/uid\u map
字符串
0 1000 1
(1000是我用户的uid)

如果我在我的用户下运行
A
/A
这可以正常工作,并且在进程中
B
getuid()
会给出
0
。但是如果我像sudo/A那样运行
A
,那么
B
中的
getuid()
会给我65534(
nobody

当我在
sudo
code中搜索时,它没有创建任何新的名称空间。所以我的问题是这里发生了什么,为什么在sudo下我不能正确设置映射
01001

更新

另外,如果我将suid添加到
A

$ sudo su
# chown 0:0 A
# chmod u+s A
# exit
$ ./A

然后
B
再次给我
0

我不喜欢
sudo su
,你试过
sudo-I
吗?@LapshinDmitry问题不在于这部分。这里我只是为我的脚本设置了SUID位。我只是认为双层SUID(
sudo
su
)可能会有一些副作用。