Unix下涉及的用户共有四个。
实际用户:当前实际登陆的用户,取自登陆文件。
有效用户:实际执行或访问文件的用户,通常与实际用户相同。
设置用户:是一个标记,并非真实的用户。当执行文件时,将进程的有效用户设置为文件所有者的用户ID。
保存的设置用户:一个临时变量性质的用户,在实际用户和有效用户之间切换,适用于执行命令过程中所需的用户权限切换。
下面以两个情景为例:
设有用户A、B和可执行程序P。
A:对所有文件有读、写、执行权限
B:对所有文件有读、执行的权限
P:由用户A创建,功能为写一个文件
情景1:
1、以A用户登陆系统
2、P执行时以B的用户权限执行
3、执行P
此时,实际用户为A,执行P时的有效用户为B。
情景2:
1、以B用户登陆系统
2、P设置了设置用户
3、执行P
此时,实际用户为A,P执行时的有效用户为A
设置用户与保存设置用户时两个完全不同的概念,这点很重要。
这里需要吐槽下,这两个名字,实在让人无语。