0

我写了一个简单的程序

当你运行这个程序时,如果你不是root用户,输入root密码,然后将uid更改为root

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

root获取密码后如何将uid更改为root ?

4

1 回答 1

5

没有办法从非 root 用户更改为 root。这就是重点。login, sshd, 或之类的程序su最初以 root 身份运行,无论是因为它们的祖先还是可执行文件上有 suid 位,并仔细限制您可以执行的操作,直到您使用密码或其他方法进行身份验证,然后更改为适当的uid(root 或您登录的用户)和exec另一个程序(通常是 shell)。

于 2013-04-20T03:18:00.197 回答