在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;
}
本文介绍了一种在Linux环境下,如何通过编写C程序并利用pty和forkpty函数结合sudo命令来执行需要特殊权限的可执行文件的方法。
6272

被折叠的 条评论
为什么被折叠?



