目录
Linux之特殊权限
SUID
定义
案例
原因
查找真个系统的SUID/SGID文件
SGID
定义:
Sticky Bit
案例
设置文件和目录的特殊权限
方法一 使用 chmod命令
方法二 使用数字形式的权限模式
设置新建文件或目录的默认权限
设置修改文件的扩展性
设置文件的扩展性
语法格式
参数及作用
案例
查看文件扩展属性
语法格式
参数及作用
案例
Linux之特殊权限
SUID
定义
案例
student 在执行 passwd 修改自己的密码时,其修改的密码。最终是需要保存到/etc/shadow文件中,而这个文件的权限是----------. ,它的拥有者是root,也只有root可以“强制”存储,其他用户都不可以查看
但是student 去执行 passwd(/usr/bin/passwd) ,却可以更新自己的密码,说明/etc/shadow ,student 这个普通用户的身份可以去访问文件, 可是明明 /etc/shadow 没 有student 可访问的权限!
原因
存在S权限,当 S 权限在拥有者的权限位上时, 即如-rwsr-xr-x这样时, 称为 SUID
![]()
SUID 即 Set UID --- UID 指的是拥有者的的 ID, 而这个程序 (/usr/bin/passwd) 的拥有者(root)
注意:
SUID仅对二进制文件有效
查找真个系统的SUID/SGID文件
[root@localhost /]# find / -perm /6000
 
| 参数 | 作用 | 
| 6000 | 查看所有具有SUID或GUID的文件 | 
| 4000 | 所有SUID的文件 | 
| 2000 | 所有的GUID | 

SGID
定义:
文件 --- 如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候, 它的有效用户组 (effective group)将会变成该程序的用户组所有者 (group id) ( 真正的组,原来的组)
一 般来说, SGID 多用在特定的多人团队的项目开发上,在系统中用的很少
Sticky Bit
定义
在具有SBIt的目录下, 用户若在该目录下具有 w 及 x 权限 ,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除
注意:
Sticky Bit (SBit) 当前只针对目录有效,对文件没有效果
案例
不过,如果将 A 目录加上了 Sticky Bit 权限,则 student用户只能针对自己建立的文件或目录进行“删除/重命名/移动” 等操作
设置文件和目录的特殊权限
方法一 使用 chmod命令
chmod u±s 目录或文件 --- 添加或移除 SUID 权限
chmod g±s 目录或文件 --- 添加或移除 GUID 权限
chmod o±t 目录或文件 --- 添加或移除 sticky 权限
方法二 使用数字形式的权限模式
后面三位是 一般权限的数字表示 ,前面第一位则是 特殊权限的标志数字
| 特殊权限数字 | |
| 0 |  
       
      不设置特殊权限 
        | 
| 1 |  
       
      只设置 
      sticky 
        | 
| 2 |  
       
      只设置 
      GUID 
      权限  
        | 
| 3 |  
       
      只设置 
      SGID 
      和 
      sticky 
      权限 
        | 
| 4 |  
       
      只设置 
      SUID 
      权限  
        | 
| 5 |  
       
      只设置 
      SUID 
      和 
      sticky 
      权限 
        | 
| 6 |  
       
      只设置 
      SUID 
      和 
      SGID  
        | 
| 7 |  
       
      同时设置 
      SUID 
      、 
      GUID 
      、 
      sticky3 
      种权限。  
        | 
设置新建文件或目录的默认权限
与umask值的具体关系:新建 文件 的默认权限 = 0666 -umask 值新建 目录 的默认权限 = 0777 -umask 值
设置修改文件的扩展性
设置文件的扩展性
语法格式
chattr [ -RV ] [+-=acdijsuADS] 文件或目录名
参数及作用
| 参数 | 作用 | 
| -R | 递归设置指定目录及其目录下的所有文件和子目录的属性 | 
| -V | 详细显示目录和文件的属性设置情况 | 
| + | 增加某项属性 | 
| · |  
       
      取消 
      某项属性 
        | 
|  
       
      = 
        |  
       
      设置文件或目录 
      只具有 
      哪些属性 
        | 
|  
       
      a 
        |  
       
      只允许 
      向文件 
      追加 
      数据, 
      不允许 
      任何进程 
      覆盖重写 
      文件的内容 
        | 
|  
       
      A 
        |  
       
      设置不允许系统更新文件的最后访问时间 
        | 
|  
       
      i 
        |  
       
      不可修改属性 
      。具有该属性的文件不能被删除、更名或修改其内容 
        | 
|  
       
      c 
        |  
       
      压缩属性,写入或读取时,系统会 
      自动进行压缩 
      或 
      解压缩 
        | 
|  
       
      s 
        |  
       
      安全删除属性。即在删除一个文件时,会使用 
      0填充 
      原文件所在的存贮区,以使 
      恢复工具无法恢复出文件的内容 
        | 
|  
       
      u 
        |  
       
      可恢复性的删除 
      。对于具有该属性的文件,在删除时,系统会 
      保留其数据块 
      以便以后能恢复该文件的内容 
        | 
案例
示例 --- 要给/test/file1.txt 文件增加不可修改属性
[root@localhost /]# chattr +i /etc/rc.local 
 
查看文件扩展属性
语法格式
lsattr [-adR] 文件名或目录名
参数及作用
| 参数 | 作用 | 
|  
       
      -a 
        |  
       
      列出目录中的 
      所有文件 
      (包括隐藏文件) 
        | 
|  
       
      -d 
        |  
       
      以与文件相同的方式列出目录的扩展属性 
        | 
|  
       
      -R 
        |  
       
      以 
      递归的方式 
      列出目录的属性及其内容 
        | 
案例
示例 --- 将/test/file1.txt 文件设置为具有i属性和A属性,并查看设置后的属性
[root@localhost /]# chattr =ia /test/file1.txt 
[root@localhost /]# lsattr /test/file1.txt 
 
 



















