Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我写了一个简单的程序
当你运行这个程序时,如果你不是root用户,输入root密码,然后将uid更改为root
root
if (getuid()) { char *pass = getpass(""); //how to change uid to root ? }
root获取密码后如何将uid更改为root ?
没有办法从非 root 用户更改为 root。这就是重点。login, sshd, 或之类的程序su最初以 root 身份运行,无论是因为它们的祖先还是可执行文件上有 suid 位,并仔细限制您可以执行的操作,直到您使用密码或其他方法进行身份验证,然后更改为适当的uid(root 或您登录的用户)和exec另一个程序(通常是 shell)。
login
sshd
su
exec