设置用户id和设置组id
实际用户id和实际组id:这两个字段在登录时取自口令文件中的登录项,在一个登录会话间这两个值不会改变
有效用户id和有效组id:这两个字段决定了对文件的访问权限
设置用户id和设置组id:同实际用户id和有效用户id不同的是,设置用户id是与文件绑定在一起的,而不是与用户绑定在一起
对于一个程序文件,可以在文件模式字中设置一个特殊标志,其含义是“当执行此文件时,将用户的有效用户id设置为文件所有者的用户id”
类似的是可以在文件模式字中设置另一个特殊标志,其含义是“当执行析此文件时,将用户的有效用户组id设置为文件组所有者的id”
举例:ll /usr/bin/passwd -rwsr-xr-x 1 root root ................
在某个有效用户非root的shell下执行passwd命令,shell会fork出一个子进程,此时子进程的有效用户id还是父进程的有效用户id,然后在子进程中exec程序/usr/bin/passwd
exec会根据/usr/bin/passwd的SUID位(设置用户id位)将进程的有效用户id设置为该文件的所有这root,从而获得/etc/shadow的读写权限,exec退出后有效用户id变回