可以通过如下简单的代码获得root权限:
char *name[2];
name[0] = "/bin/bash";
name[1] = "-p";
name[2] = 0x0;
execve(name[0], name, 0x0);
但是这个解决方案需要设置sticky bit chown root:root; chmod u+s。
问题是如何仅通过提供用户名和密码来获得 root 权限(通过进程和此进程,-因此进程向用户询问登录信息并使用此权限执行)。
可以通过如下简单的代码获得root权限:
char *name[2];
name[0] = "/bin/bash";
name[1] = "-p";
name[2] = 0x0;
execve(name[0], name, 0x0);
但是这个解决方案需要设置sticky bit chown root:root; chmod u+s。
问题是如何仅通过提供用户名和密码来获得 root 权限(通过进程和此进程,-因此进程向用户询问登录信息并使用此权限执行)。
通过直接向 su 实用程序提供根密码来解决问题。通过使用 fd_set 或管道和系统调用 forkpty 可以很容易地丰富它,它返回一个准备登录的 shell。
请查看我描述此问题并显示解决方案的帖子: http ://www.andreypudov.com/2013/02/user-authorization-in-linux.html