档案特殊权限Set UID,SETGID,SETBIT

1.Set  UID:当s这个标志出现在拥有者的x权限上时,此时被称为Set UID,简称为SUID的特殊权限。基本上SUID有这样的限制与功能

    1)SUID权限仅对二进制程序有效

    2)执行者对于该程序需要具有x的可执行权限

    3)本权限仅在执行该程序的过程中有效

    4)执行者将具有该程序拥有者的权限

    eg:在linux系统中所有的账号密码都记录在/etc/shadow这个档案里面,这个档案权限为:-r-------- 1 root root,即只有root可读、可强制写入。虽然这个档案仅有root可以修改,但用户却可以使用自己的账号通过输入passwd之隔指令来修改密码。

    原因为:普通用户对/usr/bin/passwd这个程序来说是具有x权限的,passwd的拥有者是root,普通用户在执行passwd的过程中会暂时获得root权限,因此普通用户就可以修改自己的密码了。

2.Set GID:当s这个标志出现在群组的x权限的位置上时,称为Set GID,简称SGID,与SUID不同,SGID可以针对档案和目录来设定,作用在文件上其功能有:

    1)SGID对二进制程序有用

    2)程序执行者对于该程序来说有x的权限

    3)执行者在执行的过程中将会获得该群组的支持

作用在档案上,其功能有:

    1)若用户对于此目录具有r和x的权限时,该用户能够进入此目录

    2)用户在此目录下的有效群组将会变成该目录的群组

    3)用途:若用户在此目录下具有w权限,则使用者所建立的新档案,该档案的群组与此目录的群组相同

3.Sticky Bit:只针对目录有效,一般置于其他人的x权限位置上,其作用是:

    1)当用户对于此目录具有w,x权限,亦即具有写入的权限

    2)当用户在该目录下建立档案或目录时,仅有自己与root才有权利删除该档案

    eg:当甲用户对于A目录是具有群组或其他人的身份,并且拥有该目录w权限,这表示甲用户对该目录任何人建立的目录或档案均可进行“删除/更名/移动”等动作。不过将A目录加上SBIT的权限项目时,则甲只能够针对自己建立的档案或目录进行删除/更名/移动等动作,而无法删除他人的档案。

4.以上特殊权限的设定:众所周知,用三个数字可以设定档案的权限,那么如果在这三个数字之前再加上一个数字的话,最前面的那个数字就代表这几个权限了。

    1)4为SUID

    2)2为SGID

    3)1为SBIT

eg:加入要将一个档案的权限改为:-rwsr-xr-x时,由于s在用户的权限中,所以是SUID,因此,在原先755之前还要加上4,也就是chmod  4755  filename来设定。

此外,ST对应空的权限,因为st权限都是建立在可执行的基础上的,一旦档案不具有可执行的权限,则该档案就会产生空的st权限,即ST。

另外也可以使用+、-、=来设定档案的权限(包括特殊权限)。