1.ACL访问控制概述
上一章节我们学习了基础权限UGO、特殊权限,但所有的权限是针对某一类用户设置的, 如果希望对文件进行自定义权限控制,就需要用到文件的访问控制列表ACL

UGO设置基本权限: 只能一个用户,一个组和其他人
ACL设置基本权限: r、w、x
设定acl只能是root管理员用户. 相关命令: getfacl , setfacl
acl基本使用方式

//环境准备
[root@xuliangwei ~]# cp /etc/passwd /root/passwd
//文件在没有设定acl, 看到的和传统权限是一样
[root@xuliangwei ~]# ll passwd
-rw-r–r– 1 root root 0 10-26 13:59 /home/test.txt

//使用getacl查看权限
[root@xuliangwei ~]# getfacl passwd

file: passwd

owner: root

group: root

user::rw- //文件owner权限
group::r– //文件拥有组权限
other::r– //其他人权限
1.设定acl权限案例如下

-rw-r–r– 1 root root 1380 Feb 27 11:25 passwd

alice 拥有读写权限 rw
bgx 没有任何权限 –
jack 组拥有读权限 r
匿名用户拥有读写权限 rw

//建立相关用户
[root@xuliangwei ~]# useradd alice
[root@xuliangwei ~]# useradd bgx
[root@xuliangwei ~]# useradd jack

//增加用户 alice 权限
[root@xuliangwei ~]# setfacl -m u:alice:rw passwd

//增加用户 bgx 权限
[root@xuliangwei ~]# setfacl -m u:bgx:- passwd

//增加匿名用户权限
[root@xuliangwei ~]# setfacl -m o::rw passwd

//增加组权限
[root@xuliangwei ~]# setfacl -m g:jack:r passwd

注意: 如果用户同时属于不同的两个组,并且两个组设定了acl访问控制
1.根据acl访问控制优先级进行匹配规则
2.如有用户拥有多个组的权限不同的权限,优先使用最高权限(模糊匹配)
2.查看acl权限

[root@xuliangwei ~]# ll passwd
-rw-rw-rw-+ 1 root root 1531 Jan 26 07:52 passwd

[root@xuliangwei ~]# getfacl passwd

file: passwd

owner: root

group: root

user::rw-
user:bgx:—
user:alice:rw-
group::r–
group:jack:r–
mask::rw-
other::rw-
3.移除acl权限

//移除jack组的acl权限
[root@xuliangwei ~]# setfacl -x g:jack passwd

//移除bgx用户的acl权限
[root@xuliangwei ~]# setfacl -x u:bgx passwd

//移除文件和目录所有acl权限
[root@xuliangwei ~]# setfacl -b passwd

//移除默认的acl
[root@xuliangwei ~]# setfacl -k dir
4.查看acl帮助

//EXAMPLES 示例文档
[root@xuliangwei ~]# man setfacl

//复制 file1 的 ACL 权限给 file2
[root@xuliangwei ~]# setfacl -m u:alice:rw,u:bgx:r,g:jack:rw file1
[root@xuliangwei ~]# getfacl file1 |setfacl –set-file=- file2
2.ACL高级特性MASK
mask用于临时降低用户或组的权限,但不包括文件的所有者和其他人。
mask最主要的作用是用来决定用户的最高权限。

mask默认不会对匿名用户降低权限,所以为了便于管理文件的访问控制,建议匿名用户的权限置为空
//临时降低用户或组权限
[root@xuliangwei ~]# setfacl -m mask::rw filename
小结
1.mask会影响哪些用户,除了所有者和其他人。
2.mask权限决定了用户访问文件时的最高权限。(如何影响)
3.mask用于临时降低用户访问文件的权限。(mask做什么)
4.任何重新设置acl访问控制会清理mask所设定的权限。
3.ACL高级特性Default
default: 继承(默认)

alice能够对/opt目录以及以后在/opt目录下新建的文件有读、写、执行权限

//赋予 alice 对/home 读写执行权限
[root@xuliangwei ~]## setfacl -R -m u:alice:rwX /opt
//赋予 alice 对以后在/home 下新建的文件有读写执行权限(使 alice 的权限继承)
[root@xuliangwei ~]## setfacl -m d:u:alice:rwX /opt

//检查对应的权限
[root@linux-node1 ~]# getfacl /opt/
getfacl: Removing leading \’/\’ from absolute path names

file: opt/

owner: root

group: bgx

user::rwx
user:alice:rwx
group::rwx
mask::rwx
other::rwx
default:user::rwx
default:user:alice:rwx
default:group::rwx
default

版权声明:本文为wangyongqiang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wangyongqiang/articles/11826213.html