这是我的 c 代码片段test.c
。
printf("ruid:%d, euid:%d\n",getuid(),geteuid());
char *args[] = {"/bin/bash","-c","exec id",0};
execv("/bin/bash",args);
我用 编译代码sudo gcc test.c -o test; sudo chmod +s ./test
,所以程序test
有 suid 位并且归 root 所有。
printf
输出为预期的, ruid:1000, euid:0
, 但程序id
指示ruid
和euid
都是1000
.