-1
我想用C编写程序,它将以root用户身份打开bash,但对于任何用户都没有密码。以root用户身份运行C程序,无密码
#include <unistd.h>
#include <stdio.h>
int main(void)
{
char *argv[] = { "/bin/bash","-c","sudo /bin/bash",0 };
execve(argv[0], &argv[0],0);
return 0;
}
我的系统是Linux Mint的18.2索尼娅,和我设置把这两个命令
chown root:root a.out
chmod u=srwx,go=xr a.out
但仍当我尝试执行此,它要求的密码。如果还有其他选项,我不想编辑/ etc/sudoers。
允许以root用户身份运行程序,而不必指定root的密码(并且没有通过sudoers或其他方式给出明确的许可),听起来就像是一个安全漏洞,你不觉得吗? –
在某些特定情况下,它不是。我们可以判断,直到我们知道整个数字? OP *必须*警告风险,或者解释整个情况。请注意,许多程序(尤其是守护进程)都有一个setuid位,并以root用户身份运行,通常用于执行一些初始化,然后以普通用户的身份执行setuid()。 –
@DanielKamilKozar OP有能力将所有者设置为root并设置“SETUID”。 – iBug