Linux之特殊权限

目录

Linux之特殊权限

SUID

定义

案例

原因

查找真个系统的SUID/SGID文件

SGID

定义:

Sticky Bit

案例

设置文件和目录的特殊权限

方法一 使用 chmod命令

方法二 使用数字形式的权限模式

设置新建文件或目录的默认权限

设置修改文件的扩展性

        设置文件的扩展性

                语法格式

                参数及作用

                案例

        查看文件扩展属性

                语法格式

                参数及作用

                案例

 


Linux之特殊权限

        在Linux 系统中 , 用户对文件或目录的访问权限 , 除了 r( 读取 ) w( 写入 ) x( 执行 ) 三种一般权限外 , 还有 SETUID(SUID) SET GID(SGID) Sticky Bit(粘滞位 ) 三种特殊权限 , 用于对文件或目录进行更加灵活方便的访问控制

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

Linux之特殊权限_第1张图片

SGID

定义:

        文件 --- 如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候, 它的有效用户组 (effective group)将会变成该程序的用户组所有者 (group id) ( 真正的组,原来的组

        目录 --- 如果SGID 是设 置在A目录上 ,则在 A 目录内所建立的文件 目录的用户组 ,将会是此 A 目录的用户组
一 般来说, SGID 多用在特定的多人团队的项目开发上,在系统中用的很少

Sticky Bit

定义

        在具有SBIt的目录下, 用户若在该目录下具有 w 及 x 权限 ,则当用户在该目录下建立文件目录时,只有文件拥有者与root才有权力删除

注意:

        Sticky Bit (SBit) 当前只针对目录有效,对文件没有效果

案例

        当 student 用户 属于 A 目录的 group 成员 或属于 other 且拥有 w 权限 时,可以对该目录内 任何人建立 的目录或文件进行“ 删除/重命名/移动 等操作

        不过,如果将 A 目录加上了 Sticky Bit 权限,则 student用户只能针对自己建立的文件或目录进行“删除/重命名/移动等操作

设置文件和目录的特殊权限

方法一 使用 chmod命令

        chmod  u±s 目录或文件 --- 添加或移除 SUID 权限

        chmod  g±s 目录或文件 --- 添加或移除 GUID 权限

        chmod  o±t  目录或文件 --- 添加或移除 sticky 权限

方法二 使用数字形式的权限模式

        可采用“nnnn” 格式的四位八进制数字表示
后面三位是 一般权限的数字表示 ,前面第一位则是 特殊权限的标志数字
特殊权限数字
0
不设置特殊权限
1
只设置 sticky
2
只设置 GUID 权限
3
只设置 SGID sticky 权限
4
只设置 SUID 权限
5
只设置 SUID sticky 权限
6
只设置 SUID SGID
7
同时设置 SUID GUID sticky3 种权限。

设置新建文件或目录的默认权限

        在Linux 系统中 , 当用户创建一个新的文件或目录时 , 系统 都会为新建的文件或目录分配默认的权限 , 该默认权限 并不是继承了上级目录的权限 , 而是 与umask值(称为权限掩码)有关
与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 

 

你可能感兴趣的:(Rhcsa,linux,运维,服务器)