目录
Linux之特殊权限
SUID
定义
案例
原因
查找真个系统的SUID/SGID文件
SGID
定义:
Sticky Bit
案例
设置文件和目录的特殊权限
方法一 使用 chmod命令
方法二 使用数字形式的权限模式
设置新建文件或目录的默认权限
设置修改文件的扩展性
设置文件的扩展性
语法格式
参数及作用
案例
查看文件扩展属性
语法格式
参数及作用
案例
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仅对二进制文件有效
[root@localhost /]# find / -perm /6000
参数 | 作用 |
6000 | 查看所有具有SUID或GUID的文件 |
4000 | 所有SUID的文件 |
2000 | 所有的GUID |
文件 --- 如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候, 它的有效用户组 (effective group)将会变成该程序的用户组所有者 (group id) ( 真正的组,原来的组)
一 般来说, SGID 多用在特定的多人团队的项目开发上,在系统中用的很少
定义
在具有SBIt的目录下, 用户若在该目录下具有 w 及 x 权限 ,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除
注意:
Sticky Bit (SBit) 当前只针对目录有效,对文件没有效果
不过,如果将 A 目录加上了 Sticky Bit 权限,则 student用户只能针对自己建立的文件或目录进行“删除/重命名/移动” 等操作
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