Linux系统——ACL权限控制及特殊权限

时间:2021-01-18 02:58:47

ACL权限控制

ACL(access control list),可以提供除属主、属组、其他人的rwx权限之外的细节权限设定

ACL的权限控制

(1)User 使用者

(2)Group 群组

(3)Mask 默认权限掩码

启动ACL(yum安装ACL)

# yum -y install acl

# mount

# mount -o remount,acl /

# mount

Linux系统——ACL权限控制及特殊权限

*********************************************

ACL的设置

setfacl命令

格式:setfacl  选项  acl参数 目标文件或目录

-m  设置后续的acl参数,不可与-x一起使用

-x   删除后续的acl参数,不可与-m一起使用

-b   删除所有的acl参数

-k   删除默认的acl参数

-R   递归设置acl参数

-d   设置默认acl参数,只对目录有效

ACL参数

u:用户名:权限    给某个用户设定权限,若不添加用户名,默认修改属主权限

g:组名:权限      给某个组设定权限,若不添加组名,默认修改属组权限

m:权限          更改权限掩码

增加用户test1与gtest组具有读写权限

Linux系统——ACL权限控制及特殊权限Linux系统——ACL权限控制及特殊权限

权限发生变化,结尾增加了一个“+”

********************************************

ACL的查询

getfacl命令

格式: getfacl  文件或目录

Linux系统——ACL权限控制及特殊权限

权限掩码

类似于umask,ACL权限设置必须要在mask的权限范围内才会生效

Linux系统——ACL权限控制及特殊权限

递归修改目录下现有文件的ACL设置

递归修改/aaa/目录及其目录下的ACL设置,并新建文件查看是否具有相同acl权限

Linux系统——ACL权限控制及特殊权限

递归式修改目录及目录下的ACL设置,但对当前存在的文件生效,但新建文件并不具有相同的ACL设置。

预设ACL权限

设置/aaa/目录下,test1用户一直具有读写执行权限Linux系统——ACL权限控制及特殊权限

删除ACL设置

(1)删除某文件或目录单个用户或组的权限

Linux系统——ACL权限控制及特殊权限

(2)删除某文件或目录全部ACL设置

Linux系统——ACL权限控制及特殊权限

递归删除/aaa/目录及其目录下所有文件的ACL设置

Linux系统——ACL权限控制及特殊权限

特殊权限SUID、SGID、SBIT

SUID(Set UID)

s标志出现在文件属主权限的X权限上

Linux系统——ACL权限控制及特殊权限

/usr/bin/passwd文件具有SUID这种特殊权限

SUID特殊权限的特点:

SUID权限仅对二进制程序有效

执行者对于改程序需要具有可执行x权限

SUID权限仅在执行该程序的过程中有效

执行者将具有该程序拥有者的权限

Linux系统——ACL权限控制及特殊权限

SGID (Set GID)

s标志出现在文件属组权限的X权限上

除了与SUID相同的对二进制程序有效以外,SGID还能够用在目录上,当一个目录设定了SGID的权限后,用户若对此目录具有r与x权限,该用户能进入次目录后,在此目录下的有效群组将变为目录的群组,即若该用户具有w权限,新建文件或目录后我们会发现,该用户所建立的文件或目录的属组为上层(具有SGID设置)的目录的属组。

SBIT (Sticky Bit) 粘滞位

当目录权限x的位置变为t时,即该目录舍友SBIT粘滞位权限,主要作用是该目录下的文件及即目录仅其属主与root用户具有删除该文件或目录的权限,增强安全性。

SUID、SGID、SBIT权限的设定

(1)八进制数设置方法

方法:在属主、属组、其他人的权限前增加特殊权限的八进制数字表示

4 为SUID

2 为SGID

1 为SBIT

设置SUID权限

Linux系统——ACL权限控制及特殊权限

设置SGID权限

Linux系统——ACL权限控制及特殊权限

设置SBIT权限

Linux系统——ACL权限控制及特殊权限

(2)字母设置方法

设置SUID权限

Linux系统——ACL权限控制及特殊权限

设置SGID权限

Linux系统——ACL权限控制及特殊权限

设置SBIT权限

Linux系统——ACL权限控制及特殊权限