我试图找出setuid和seteuid函数之间的区别。那时,他们中的许多人说以下是不同之处。它 在setuid的手册页中显示。
因此,一个set-user-ID-root程序希望暂时删除root权限,假定一个非特权用户的身份,然后重新获得root权限,则不能使用
setuid()
。您可以使用seteuid(2)
完成此操作。
我对上面的手册页引用有疑问。使用setuid我们可以设置进程的有效用户ID。 对于Ex:
setuid(getuid());
执行此语句后,进程的有效用户标识将更改为当前用户。所以,重新获得根 许可,我只是使用,
setuid(0);
但为什么手册页参考显示
afterward cannot use setuid(). You can accomplish this with seteuid(2)
答案 0 :(得分:2)
答案 1 :(得分:0)
请注意手册页的措辞:它适用于set-user-id-root程序(因此可执行文件由用户root拥有,suid位已设置)。