在linux下,普通账户可以通过下面的程序,输入sudo的密码来执行特殊权限的可执行程序。
gcc -o test test.c -l util
/*test.c*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <pty.h>
int
main(int argc, char *argv[])
{
int n, fd;
pid_t pid;
char buf[4096], password[] = "test1/n";
pid = forkpty(&fd, NULL, NULL, NULL);
if (pid == 0)
execlp("sudo", "sudo", "./client_test", (char *)0);
sleep(1);
write(fd, password, strlen(password));
while ( (n = read(fd, buf, sizeof(buf))) > 0)
write(STDOUT_FILENO, buf, n);
return 0;
}