我写了一个简单的程序
运行此程序时,如果您不是root
用户,请输入root
密码,然后将uid更改为root
if (getuid())
{
char *pass = getpass("");
//how to change uid to root ?
}
如果获得root
密码,如何将uid更改为root?
答案 0 :(得分:5)
无法从非root用户更改为root用户。这就是重点。 login
,sshd
或su
等程序最初以作为root 开始工作,原因可能是因为它们的祖先或可执行文件上的suid位,并严格限制您可以执行的操作,直到您使用密码或其他方法进行身份验证,然后更改为适当的uid(root或您登录的用户)和exec
'另一个程序(通常,壳)。