SUID :
/etc/shadow 文件的权限为: -r-------- root root
意为仅有root才能去强制修改内部的数据信息,但是普通的用户想要修改自己的密码时,同样也会修改这个文件,但却不会因无权限导致密码修改失败,这就是SUID的功能。
SUID 仅对二进制文件有效;
首先,用户执行的passwd源于 /usr/bin/passwd ,其权限:-rwsr-xr-x root root
文件拥有者权限描述的 x 权限变成了 s , 即此文件具有SUID权限;
而普通用户属于others分组,存在对此文件的 x 权限,那么在普通用户执行此bash的时候,会暂时性地得到root的权限,从而间接地去修改/etc/shadow的内容;
SGID:
首先,SGID作用于group权限描述的 x 位置上,即 -rwxr-s— 这种;
一个用户可能会同时存在与多个用户组内,而在其创建文件或目录的时候,其默认的用户组为该用户的 初始用户组 ,即这个用户在刚创建就分配的一个用户组,一般与其用户名相同;
一个用户仅有一个初始用户组,而除此之外的用户组称作有效用户组;
在SGID控制的目录内,当一个用户存在于此目录的用户组内,那么这个用户在此目录下创建的文件或目录的默认用户组都为此目录控制的用户组;
如:有一个目录描述为: drwxrws— root project … … abc
而有一个用户:alex,他的初始用户组也为 alex,project是他的有效用户组之一,那么当alex进入到abc目录内,创建一个 test 文件后,该文件的所有者为alex,用户组为 project;
并且在此目录内,alex将project作为自己的初始用户看待;
SBIT:
仅针对目录有效,在根目录不难发现:tmp目录的描述:drwxrwxrwt
最后面那个 t 即代表 SBIT;
其作用是在此目录下,仅有 当前文件或目录的所有者 以及 系统管理员root 才能删除该文件或目录;