前置条件:当前用户对该文件具备x权限
现象:在前置条件下,某个二进制可执行文件的user权限x的位置被一个s覆盖
出现该特殊权限表明:本s权限在执行的过程中会起效;由于具有s权限,当前用户在执行该文件的过程中将具有该程序文件的拥有者所具备的权限(也就是说在该程序的执行过程中当前用户可以访问文件所有者可以访问的所有其他文件)。当然,正因上述性质,s权限只能出现在二进制可执行文件上**。
典型的一个例子就是普通用户可以通过passwd程序在/etc/shadow中去修改自己的密码,实际上普通用户对于/etc/shadow是没有写入权限的,只不过是他对passwd具有s权限,那么执行passwd的过程中就会临时具有root的权限,当然就可以读写/etc/shadow了。
当前权限只能用于二进制文件
前置条件:当前用户对该文件具备x权限
现象:前置条件下,某个文件的group权限x的位置被一个s覆盖
出现该特殊权限表明:当前用户在执行该文件的过程中将具有该程序文件所属群组的权限支持。
前置条件:用户对于此目录具有r和x的权限(可以进入)
现象:前置条件下,某个目录的group权限x的位置被一个s覆盖
出现该特殊权限表明:当前用户在此目录下的有效群组会变成该目录所属的群组;当前用户如果在此目录下有w权限,那么新建的文件和目录的群组都会设定为该目录所属的群组。
前置条件:当前用户对该目录具备w和x权限(可以访问并且可以写入)
现象:前置条件下,某个目录的others权限中的x被一个t覆盖
出现该特殊权限表明:当前用户在该目录下只能修改或者删除自己创建的文件,属于其他所有者的文件不能修改和删除。一个例外是root用户可以修改或者删除任何用户的文件。
使用chmod设定特殊权限
4,2,1分别表示SetUID,SetGID,StikyBit权限。也可以使用符号方式来添加特殊权限。
需要用户自行注意特殊权限的前置条件。如果设定之后不满足前置条件,那么s和t分别会变为S和T,来提示用户该特殊权限因为前置条件不足没有生效。