Linux文件特殊权限SUID,SGID,SBIT

SUID:Set UID (s)

当s这个标志出现在文件的拥有者(owner)的x权限上时,此时称为Set UID,简称为SUID的特殊权限。例如:/usr/bin/password

[root@rhel6164 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32200 Jan 29  2010 /usr/bin/passwd
SUID的作用:
  1. SUID权限仅对二进制程序有效
  2. 执行者对于改程序需要具有x的可执行权限
  3. 本权限仅在执行该程序的过程中有效(run-time)
  4. 执行者将具有该程序拥有者的权限

SGID:Set GID (s)

当s标志出现在群组(group)的x时称为Set GID,简称SGID的特殊权限。例如:/usr/bin/locate

[root@rhel6164 ~]# ll /usr/bin/locate
-rwx--s--x. 1 root slocate 42032 Mar 30  2010 /usr/bin/locate
不像SUID只能对文件有效,SGID不仅对文件有效,对目录也是有效的。

SGID针对文件的作用:

  1. SGID对二进制程序有效
  2. 程序执行者对于该程序来说,需要具备x的权限
  3. 执行者在执行的过程中将会获得该程序群组的支持

SGID针对目录的作用:

  1. 用户若对于此目录具有r与x的权限时,该用户能够进入此目录
  2. 用户在此目录下的有效群组(effective group)将会变成目录的群组
  3. 用途:若用户在此目录下具有w的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同

SBIT:Sticky Bit(t)

SBIT只对目录有效。例如:/tmp

[root@rhel6164 ~]# ll -d /tmp
drwxrwxrwt. 17 root root 4096 Oct 26 11:45 /tmp
SBIT的作用:

  • 当前用户对于此目录具有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


你可能感兴趣的:(Linux_admin)