看了其他人的介绍 sudo命令实现原理简析
但是实测却不是这样,我的环境是 Linux localhost 5.4.85-1-MANJARO #1 SMP PREEMPT Mon Dec 21 21:38:53 UTC 2020 x86_64 GNU/Linux
。
实测能成功调用 setuid
然后可以执行其他命令。而且除了 "sudo" 那几条命令以外,不需要输入任何密码。这里有个疑问为什么我能直接调用 “setuid” 函数???
我这里测试如下:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char **argv)
{
if (setuid(0))
return -1;
if (argc > 1)
execvp(argv[1], argv + 1);
else
return -1;
}
如下是执行log
原文:https://www.cnblogs.com/sinpo828/p/14283919.html