SUID、SGID、SBIT权限的作用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mChenys/article/details/84136801

一、SUID权限

当s这个标志出现在文件所有者的x权限上时,此时就被称为Set UID,简称SUID。

作用:

  1. SUID权限仅对可执行文件有效
  2. 执行者对于该可执行文件需要具有x权限
  3. 在执行过程中,调用者会暂时获得该文件的拥有者权限
  4. 该权限只在程序执行的过程中有效

例如/bin/su和/usr/bin/passwd这2个命令的所有者的x权限上都用s权限替换了。

实际上这2个可执行文件的所有者是root,但是我们依然可以在普通账号下使用这两个命令,这是因为普通账号在使用这2个命令的时候会暂时获得其拥有者的权限。

SUID权限中的s有大小写之分,如果强行给普通文件添加s权限,那么现实的是大写的S,因为普通文件没有x权限,这样显示的suid其实没什么用,因为它并不是可执行文件。

只有给文件添加了x权限后,suid才有效。

二、SGID权限

当s出现在文件的所属组x权限位置上时,表示所属组有SGID的权限。

作用:

  1. 既可以作用于目录,也可以作用于可执行文件
  2. 只要父目录有SGID权限,所有的子目录都会递归继承
  3. 执行者对于该可执行文件需要具有x权限
  4. 在执行过程中,调用者会暂时获得该文件的所属组权限

下面演示对目录和文件设置SGID权限

同样SGID的s权限也是分大小写的,当g权限组没有x权限的时候,设置SGID后就会变成大写的S,这点跟SUID一样。

三、SBIT权限

当t出现在其他组的x权限位置时,表示其他组具有SBIT的权限。

SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。 

最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。

权限t也有大小写之分,大写说明没有x权限,小写说明有x权限,这点和权限s是一样的。

四、SUID/SGID/SBIT权限设置 

和rwx权限一样通过chmod命令设置,s、t也有两种设置方法: 

1、符号表示:SUID: u+s ,SGID: g+s,SBIT: o+t 
2、数字表示:SUID=4,SGID=2,SBIT=1,将原来的三位数扩展为四位数即可,把它们放在权限数字的最开头。例如设置SUID,可以写成4777,设置SGID可以写成,2777,设置SBIT可以写成1777;如果同时设置就是数字之和,例如suid,sgid和sbit都设置的话就是7777

猜你喜欢

转载自blog.csdn.net/mChenys/article/details/84136801