Linux的;如果您不是root,请将UID更改为root

时间:2013-04-20 03:01:47

标签: c linux root uid

我写了一个简单的程序

运行此程序时,如果您不是root用户,请输入root密码,然后将uid更改为root

if (getuid())
{
    char *pass = getpass("");
    //how to change uid to root ?
}

如果获得root密码,如何将uid更改为root?

1 个答案:

答案 0 :(得分:5)

无法从非root用户更改为root用户。这就是重点。 loginsshdsu等程序最初以作为root 开始工作,原因可能是因为它们的祖先或可执行文件上的suid位,并严格限制您可以执行的操作,直到您使用密码或其他方法进行身份验证,然后更改为适当的uid(root或您登录的用户)和exec'另一个程序(通常,壳)。