不要告诉我这是重复的,因为我已经阅读了诸如如何以 root 身份执行命令之类的问题,但我无法让它为我工作。
这是我的 C 程序whoami.c
:
#include <stdio.h>
#include <stdlib.h>
int main() {
system("whoami");
}
这正是我所做的:
user@ubuntu:~/Desktop/test$ ls
whoami.c
user@ubuntu:~/Desktop/test$ gcc whoami.c
user@ubuntu:~/Desktop/test$ sudo chown root:root a.out
[sudo] password for user:
user@ubuntu:~/Desktop/test$ sudo chmod 4711 a.out
user@ubuntu:~/Desktop/test$ ls -l
total 24
-rws--x--x 1 root root 16816 Nov 13 13:03 a.out
-rw-rw-r-- 1 user user 75 Nov 13 13:03 whoami.c
user@ubuntu:~/Desktop/test$ ./a.out
user
user@ubuntu:~/Desktop/test$ sudo ./a.out
root
user@ubuntu:~/Desktop/test$
我认为s
执行位中的 意味着无论谁启动这个程序,它都会以 root 身份运行,所以我的问题是为什么这不起作用?
如果这样做是不可能的,我怎么能让任何用户以 root 身份运行特定程序?