文件和目录的特殊权限

除了rwx权限外,Linux中还有另外三种特殊权限:SUID,SGID,SBIT。

ls -l /usr/bin/passwdls -ld /tmp

SUID

s出现在文件所有者的x权限上,此时称为Set UID,简称为SUID的特殊权限。

  • SUID只能用于二进制可执行文件,对目录无效;
  • 执行者若具有该文件的x权限,则将具有文件所有者的权限;
  • 权限只在文件执行时有效,执行完毕不再拥有所有者权限。 

注意:

SUID仅可以用于二进制文件,不能用在shell script上,也不能用在目录上。

SGID

s出现在文件所属群组的x权限上,此时称为Set GID,简称为SGID的特殊权限。SGID既可以作用于文件,也可以作用于目录。

对于文件来说:

  • SGID对二进制程序有用;
  • 程序执行者对于程序具有x权限,则程序执行的过程中程序执行者将获得该程序的用户组支持。

对于目录来说:

  • 用户若对于目录具有r+x权限,该用户可以进入这个目录;
  • 用户在此目录下的有效群组将编程该目录的用户组;
  • 若用户在此目录下具有w权限,则用户新建的文件的用户组将与此目录的用户组相同。

SBIT

SBIT指的是Sticky Bit,目前只对目录有效,t出现在文件其他用户的x权限上。

当用户对于此目录具有w+x权限,即写入权限时:

当用户在该目录下创建文件或者目录时,仅有该用户和root才有权限删除文件或者目录。 

修改SUID,SGID,SBIT权限

符号类型修改权限

chmod u+s test  #为test文件加上suid权限
chmod g+s test   #为test文件加上sgid权限
chmod o+t test    #为test文件加上sbit权限

数字类型修改权限
我们知道普通文件的rwx权限修改,对于特殊权限,需要在最前面增加一位,SUID:4,SGID:2,SBIT:1

chmod 4777 test #test拥有SUID权限,rwsrwxrwx
chmod 2777 test #test拥有SGID权限,rwxrwsrwx
chmod 1777 test #test拥有SBIT权限,rwxrwxrwt

 

posted @ 2018-03-10 09:28  刘-皇叔  阅读(292)  评论(0编辑  收藏  举报