我试图让 C 程序始终以 root 身份运行,无论是谁调用它。基本上,我希望它以调用“mkdir /test”为例。所以我创建了 C 程序如下:
#include <stdio.h>
int main()
{
system("mkdir /test");
printf("bye...\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,我刚刚编译它:gcc test.c -o test
现在我尝试设置权限:
chmod +s test
Run Code Online (Sandbox Code Playgroud)
但是,以普通用户身份运行它时,出现权限被拒绝错误。因此,它执行文件但不具有 root 权限。我还尝试将权限设置为:
chmod a+s test
chmod o+s test
Run Code Online (Sandbox Code Playgroud)
但我总是遇到同样的问题。
任何人都可以帮助我吗?顺便说一下,文件 test.c 是由 root 创建的,它也被编译为 root。
bash-3.2# ls -al | grep test
-rwxr-xr-x 1 root staff 8796 5 Ago 19:07 test
bash-3.2# chmod +s test
bash-3.2# ls -al | grep test
-rwsr-sr-x 1 root staff 8796 5 Ago 19:07 test
bash-3.2# whoami
root …Run Code Online (Sandbox Code Playgroud)