SUID:Set UID (s)
当s这个标志出现在文件的拥有者(owner)的x权限上时,此时称为Set UID,简称为SUID的特殊权限。例如:/usr/bin/password
[root@rhel6164 ~]# ls -l /usr/bin/passwdSUID的作用:
-rwsr-xr-x. 1 root root 32200 Jan 29 2010 /usr/bin/passwd
- SUID权限仅对二进制程序有效
- 执行者对于改程序需要具有x的可执行权限
- 本权限仅在执行该程序的过程中有效(run-time)
- 执行者将具有该程序拥有者的权限
SGID:Set GID (s)
当s标志出现在群组(group)的x时称为Set GID,简称SGID的特殊权限。例如:/usr/bin/locate
[root@rhel6164 ~]# ll /usr/bin/locate不像SUID只能对文件有效,SGID不仅对文件有效,对目录也是有效的。
-rwx--s--x. 1 root slocate 42032 Mar 30 2010 /usr/bin/locate
SGID针对文件的作用:
- SGID对二进制程序有效
- 程序执行者对于该程序来说,需要具备x的权限
- 执行者在执行的过程中将会获得该程序群组的支持
SGID针对目录的作用:
- 用户若对于此目录具有r与x的权限时,该用户能够进入此目录
- 用户在此目录下的有效群组(effective group)将会变成目录的群组
- 用途:若用户在此目录下具有w的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同
SBIT:Sticky Bit(t)
SBIT只对目录有效。例如:/tmp
[root@rhel6164 ~]# ll -d /tmpSBIT的作用:
drwxrwxrwt. 17 root root 4096 Oct 26 11:45 /tmp
- 当前用户对于此目录具有w,x权限,亦即具有写入的权限时,当用户在该目录下建立文件或目录时,仅有自己与root才有权删除该文件或者目录
SUID/SGID/SBIT组成了文件或目录的特殊权限,如果在新建文件或者目录的时候需要用到这些特殊权限,可以用chmod来完成。
[root@rhel6164 ~]# cd /tmp
[root@rhel6164 tmp]# touch test #新建文件,默认权限为0644
[root@rhel6164 tmp]# chmod 4755 test; ls -l test #增加SUID,并需要执行者具有x权限
-rwsr-xr-x 1 root root 0 Oct 26 12:13 test
[root@rhel6164 tmp]# chmod 6755 test; ls -l test #增加SGID,并也需要执行者具有x权限
-rwsr-sr-x 1 root root 0 Oct 26 12:13 test
[root@rhel6164 tmp]# chmod 1755 test; ls -l test #增加SBIT,并也需要执行者具有x权限
-rwxr-xr-t 1 root root 0 Oct 26 12:13 test
[root@rhel6164 tmp]# chmod 7666 test; ls -l test #增加SUID/SGID/SBIT,但是执行者没有具有x权限,其实修改的都是空的特殊权限,用大写字母表示(S,T)
-rwSrwSrwT 1 root root 0 Oct 26 12:13 test