今天给伙伴们分享一下Linux ACL 访问控制,希望看了有所收获。
我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!
如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。
一、ACL访问控制概述
-
基础权限
UGO、特殊权限,所有的权限是针对某一类用户设置的, 如果希望对文件进行自定义权限控制,就需要用到文件的访问控制列表ACL -
UGO设置基本权限: 只能一个用户,一个组和其他人
-
ACL设置基本权限: r、w、x 设定
acl只能是root管理员用户. 相关命令:getfacl,setfacl -
getfacl 命令用于查看文件或目录当前设定的 ACL 权限信息。该命令的基本格式为:
[root@edenluo.com ~]# getfacl 文件名
- setfacl 命令可直接设定用户或群组对指定文件的访问权限。此命令的基本格式为:
[root@edenluo.com ~]# setfacl 选项 文件名
- 命令可以使用的所用选项及功能
| 选项 | 功能 |
|---|---|
| -m | 设定 ACL 权限。如果是给予用户 ACL 权限,参数则使用 “u:用户名:权限” 的格式,例如 setfacl -m u:st:rx /project 表示设定 st 用户对 project 目录具有 rx 权限;如果是给予组 ACL 权限,参数则使用 “g:组名:权限” 格式,例如 setfacl -m g:tgroup:rx /project 表示设定群组 tgroup 对 project 目录具有 rx 权限。 |
| -x | 删除指定用户(参数使用 u:用户名)或群组(参数使用 g:群组名)的 ACL 权限,例如 setfacl -x u:st /project 表示删除 st 用户对 project 目录的 ACL 权限。 |
| -b | 删除所有的 ACL 权限,例如 setfacl -b /project 表示删除有关 project 目录的所有 ACL 权限。 |
| -d | 设定默认 ACL 权限,命令格式为 “setfacl -m d:u:用户名:权限 文件名”(如果是群组,则使用 d:g:群组名:权限),只对目录生效,指目录中新建立的文件拥有此默认权限,例如 setfacl -m d:u:st:rx /project 表示 st 用户对 project 目录中新建立的文件拥有 rx 权限。 |
| -R | 递归设定 ACL 权限,指设定的 ACL 权限会对目录下的所有子文件生效,命令格式为 “setfacl -m u:用户名:权限 -R 文件名”(群组使用 g:群组名:权限),例如 setfacl -m u:st:rx -R /project 表示 st 用户对已存在于 project 目录中的子文件和子目录拥有 rx 权限。 |
| -k | 删除默认 ACL 权限。 |
acl基本使用方式
环境准备
[root@edenluo.com ~]# cp /etc/passwd /root/passwd
文件在没有设定acl, 看到的和传统权限是一样
[root@edenluo.com ~]# ll passwd
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
使用getacl查看权限
[root@edenluo.com ~]# 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
edenluo 没有任何权限 -
jack 组拥有读权限 r
匿名用户拥有读写权限 rw
1、建立相关用户
[root@edenluo.com ~]# useradd alice
[root@edenluo.com ~]# useradd edenluo
[root@edenluo.com ~

最低0.47元/天 解锁文章
749

被折叠的 条评论
为什么被折叠?



