linux 文件扩展权限ACL(访问控制列表)
一.关于文件扩展权限ACL
在linux中,文件与目录设置不止基础权限:r,w,x,特殊权限:suid,sgid,sticky,还有文件扩展权限ACL,ACL的全称是 Access
Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权
限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。
ACL的作用:让特定用户对特定文件拥有特定权限。
二.给文件加扩展权限
1.设置用户stick对文件ceshi.txt拥有的rwx权限 ,stick不属于ceshi.txt的所属主和组,stick是other,怎么做?
[root@node5 ~]# touch /tmp/ceshi.txt
[root@node5 ~]# echo "hello world ! " >> /tmp/ceshi.txt
[root@node5 ~]# getfacl /tmp/ceshi.txt
getfacl: Removing leading '/' from absolute path names
# file: tmp/ceshi.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
#参数u:设置某个用户拥有的权限
[root@node5 ~]# setfacl -m u:stick:rwx /tmp/ceshi.txt
#下面输出中:mask表示最大有效权限,特定用户的权限和mask的权限做与运算,得到的权限就是特定用户真正的权限。比如下面stick用户的rwx和mask的rwx相与,得到rwx,此时stick的真正权限就是rwx。
#我们一般不更改 mask 权限,只要给予 mask 最大权限 rwx,那么任何权限和 mask 权限相与,得出的值都是权限本身。也就是说,我们通过给用户和用户组直接赋予权限,就可以生效,这样做更直观。
[root@node5 ~]# getfacl /tmp/ceshi.txt
getfacl: Removing leading '/' from absolute path names
# file: tmp/ceshi.txt
# owner: root
# group: root
user::rw-
user:stick:rwx
group::r--
mask::rwx
other::r--
#注意:当我们开启ACL权限后,描述权限的地方会多出一个 "+" 号
[root@node5 ~]# ll /tmp/ceshi.txt
-rw-rwxr--+ 1 root root 15 Oct 15 16:39 /tmp/ceshi.txt
[root@node5 ~]# su stick
[stick@node5 root]$ cat /tmp/ceshi.txt
hello world !
[stick@node5 root]$ echo "可以写入" >> /tmp/ceshi.txt
[stick@node5 root]$ exit
exit
三.给目录加扩展权限
[root@node5 ~]# mkdir /tmp/test
[root@node5 ~]# getfacl /tmp/test
getfacl: Removing leading '/' from absolute path names
# file: tmp/test
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
#参数-d default 设置默认acl,对目录有效,此目录下新建的目录或文件都继承此acl权限
[root@node5 ~]# setfacl -m d:u:stick:rwx /tmp/test
[root@node5 ~]# getfacl /tmp/test
getfacl: Removing leading '/' from absolute path names
# file: tmp/test
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:stick:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@node5 ~]# ll /tmp/test -d
drwxr-xr-x+ 2 root root 6 Oct 15 17:22 /tmp/test
[root@node5 ~]# touch /tmp/test/test.txt
[root@node5 ~]# mkdir /tmp/test/data
#因为-d参数,所以test下所有创建的文件和目录都继承了默认的acl权限
[root@node5 ~]# getfacl /tmp/test/test.txt
getfacl: Removing leading '/' from absolute path names
# file: tmp/test/test.txt
# owner: root
# group: root
user::rw-
user:stick:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
[root@node5 ~]# getfacl /tmp/test/data
getfacl: Removing leading '/' from absolute path names
# file: tmp/test/data
# owner: root
# group: root
user::rwx
user:stick:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:stick:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
四.给目录下所有文件都加扩展权限
[root@node5 ~]# mkdir -p /tmp/a/b/c
[root@node5 ~]# touch /tmp/a/test.txt
[root@node5 ~]# cd /tmp/
#-R一定要在-m前面,表示目录下所有文件
[root@node5 tmp]# setfacl -R -m u:elk:rw- a
[root@node5 tmp]# getfacl a/test.txt
# file: a/test.txt
# owner: root
# group: root
user::rw-
user:elk:rw-
group::r--
mask::rw-
other::r--
五.去掉单个acl权限
[root@node5 tmp]# setfacl -x u:elk a/test.txt
[root@node5 tmp]# getfacl a/test.txt
# file: a/test.txt
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
六.去掉所有acl权限
[root@node5 tmp]# setfacl -R -b a
[root@node5 tmp]# getfacl a
# file: a
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
linux 文件扩展权限ACL(访问控制列表)的更多相关文章
- CentOS 7 文件权限之访问控制列表(ACL)
Linux的ACL是文件权限访问的一种手段.当拥有者所属组其他人(own,group,other)不能满足给一个单独的用户设置单独的权限时,ACL的出现就很好的解决了该问题. 比如其他用户own,不属 ...
- Linux文件的权限与属性
由于以前学习Linux的时候没有做比较全面的总结笔记,而且平时大部分工作都在windows上进行,所以关于Linux的一些知识点有所遗忘.近期难得空闲,翻阅书籍,学习<鸟哥的Linux私房菜&g ...
- 如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息
如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息ls -lart drwxrwxrwx@ 10 rlanffy staff 340B 3 6 2015 files-rwxrwxrwx@ ...
- Linux学习之十五-Linux文件特殊权限和附加权限
Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...
- CCNA 之 十 ACL 访问控制列表
ACL 访问控制列表 ACL(Access Control List) 接入控制列表 ACL 的量大主要功能: 流量控制 匹配感兴趣流量 标准访问控制列表 只能根据源地址做过滤 针对曾哥协议采取相关动 ...
- 普通ACL访问控制列表
配置OSPF R1: R2: R3: R4: 在R1上查看OSPF的学习 测试R1与R4环回接口连通性 配置普通ACL访问控制列表: 先在R4配置密码用R1与R4建立telnet建立 密码huawei ...
- 高级ACL访问控制列表
实验拓扑: 配置: 基本配置做完之后搭建OSPF网络 R1: ospf 1 area 0 network 10.0.13.0 0.0.0.255 network 1.1.1.1 0.0.0.0 R2: ...
- Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单
Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单 同一服务名称 book 不允许即创建白名单访问控制列表又创建黑名单访问控制列表 启用服务的白名单&黑名单配置文件时 ...
- 文件权限和访问控制列表ACL (1)
背景知识: 文件的权限主要针对三类对象进行定义 Owner: 属主u Group: 属组g Other: 其他o 每个文件针对每一类的访问者都设定了三种权限 r: Readable 读 w: Writ ...
- linux用户权限 -> ACL访问控制
UGO设置基本权限: 只能一个用户,一个组和其他人 ACL设置基本权限: r.w.x 设定acl只能是root管理员用户. 相关命令: getfacl , setfacl facl权限 简介 facl ...
随机推荐
- 深入理解 C++ 右值引用和移动语义:全面解析
C++11引入了右值引用,它也是C++11最重要的新特性之一.原因在于它解决了C++的一大历史遗留问题,即消除了很多场景下的不必要的额外开销.即使你的代码中并不直接使用右值引用,也可以通过标准库,间接 ...
- 大奖升级!HMS Core线上Codelabs挑战赛第3期:用3D建模构建元宇宙
"元宇宙"概念风生水起,在AR.VR等技术构建的虚拟世界里,3D模型担当重要角色,无论是为玩家提供更丰富更真实游戏体验的3D游戏领域,还是各大电商平台正在启用并不断完善的3D虚拟购 ...
- java excel关联导入数据格式为一对多
java excel关联导入数据格式为一对多 java 表格读取时一行一行的读取 将每行数据放入list 根据 list.stream().filter(m->m.getCode().equa ...
- HDC技术分论坛:ArkCompiler(方舟编译器)原理解析
作者:xianyuqiang 编译器首席架构师 ArkCompiler(方舟编译器)是组件化.可配置的多语言编译和运行平台,它既能支撑单一语言运行环境,也能支撑多种语言组合的运行环境.它目前主要支持的 ...
- 进阶 stack smashing--canary 报错利用 && environ泄露栈地址
进阶 stack smashing--canary 报错利用 && environ泄露栈地址 这部分是对进阶stack smashing的使用,以及对 environ的认识,我们可以看 ...
- C3P0反序列化链分析
前言 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.使用它的开源项目有Hibernate.Spring等.之前有接触到过,但是没有深入了解 ...
- C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造
C++ 构造函数 构造函数是 C++ 中一种特殊的成员函数,当创建类对象时自动调用.它用于初始化对象的状态,例如为属性分配初始值.构造函数与类同名,且没有返回值类型. 构造函数类型 C++ 支持多种类 ...
- 【笔记】go语言--函数式编程
[笔记]go语言--函数式编程 简单来说,go语言的函数式编程体现的是一个闭包的情况 函数式编程 VS 函数指针 函数是一等公民:参数,变量,返回值都可以是函数 高阶函数 函数->闭包 &quo ...
- 力扣414(java)-第三大的数(简单)
题目: 给你一个非空数组,返回此数组中 第三大的数 .如果不存在,则返回数组中最大的数. 示例 1: 输入:[3, 2, 1]输出:1解释:第三大的数是 1 .示例 2: 输入:[1, 2]输出:2解 ...
- 开源数据库PolarDB为什么能捕获娃哈哈的心?
简介: 在10月25日由阿里云开发者社区.PolarDB开源社区.infoQ联合举办的「开源人说」第三期--<数据库PolarDB专场>沙龙上,中启乘数科技(杭州)有限公司联合创始人唐成带 ...