为什么需要保存的设置用户ID? [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
访问文件时,系统将查看进程的有效UID,其GID集,并将其与文件权限(以及文件中的ACL)进行匹配。 创建文件时,系统在确定是否可以创建文件时会查看相同的过程值,但使用有效的UID设置文件上的UID,并使用有效的GID或目录的GID(如果(如果您使用的是MacOS X,则在目录上将SGID位置1)。 “ 0”系统调用检查实际UID和实际GID(而不是有效UID和GID)是否可以访问文件。 如果您有一个SUID(setuid)程序,那么它可以使用其EUID来访问其用户否则将无法访问的文件。但是,如果要代表用户(运行该文件的人的RUID)创建文件,则它需要放弃SUID特权,因此EUID与RUID相同。不久以前,一旦您放弃了SUID特权,它就永远消失了;你无法取回它。保存的UID值允许您切换回去,从而简化了SUID程序特权的管理。     
拥有保存的用户ID允许您仅在需要时放弃特权(通过将有效uid切换为真实的uid),然后重新获得特权(通过将有效uid切换为已保存的uid)。     

要回复问题请先登录注册