suid和sgid--Nebula challenge 00
suid:set-user-id位,设置了suid位的文件被执行时,程序具有文件所有者的权限而不是执行者的权限。
sgid:set-group-id位,设置了suid位的文件被执行时,程序具有所有组的权限
一句话介绍:让用户在执行此程序时可以访问原本没有权限的资源。
euid:effective-user-id
egid:effective-group-id
内核根据euid和egid判断进程对资源的相应权限。
一个进程没有设置suid和sgid位时,euid=uid egid=gid,是运行这个程序的用户的uid和gid
进程设置了suid后,euid和egid变成被运行的程序的所有者的uid和gid(SUID的优先级比SGID高,当一个可执行程序设置了SUID,则SGID会自动变成相应的egid),用户的x被替换成s。例:passwd文件
进程设置了sgid后,在许可权限部分,组用户的x被替换成s
ps:unix中的权限
9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x
第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限,其形式为rwx,第9位表示文件类型