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
)可能会有一些副作用。