真实的UID、有效的UID,有些系统甚至还有“保存的UID”。所有这些的目的是什么,尤其是最后一个?
最佳答案
每个 UNIX 进程都有 3 个与之关联的 UID。 super 用户权限是 UID=0。
真实的 UID
这是创建此进程的用户/进程的 UID。仅当正在运行的进程的 EUID=0 时才能更改。
有效的 UID
此 UID 用于评估进程执行特定操作的权限。 EUID 可以更改为 RUID,如果 EUID!=0,则可以更改为 SUID。如果 EUID=0,则可以更改为任何值。
已保存的 UID
如果您运行一个设置了 set-UID 位的可执行文件,那么生成的运行进程将以运行它的真实用户的真实 UID 以及可执行文件所有者的有效且保存的 UID 开始。如果该进程随后调用 setuid() 或 seteuid() 来更改其有效 UID,由于保存的 UID,它们仍然可以再次恢复其原始权限。如果未设置 set-UID 位,则 SUID 将是 RUID。
关于linux - 进程可以拥有的每个不同 UID 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205070/