Linux_ACL文件访问控制列表
2024-09-04 06:02:56
一、ACL文件访问控制列表
前言
1️⃣:ACL—文件访问控制列表;
2️⃣:ACL可以针对单个用户,单个文件或目录来进行r、w、x的权限设定,特别适用于需要特殊权限的使用情况。
3️⃣:ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限,可以实现灵活的权限管理,除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
4️⃣:ACL就是可以设置特定用户或者用户组对于一个文件/文件夹的操作权限
5️⃣:LINUX上的ACL访问控制列表,主要的目的是在提供传统的u(user)、g(group)、o(other)的r(read)、w(write)、x(execute)权限之外的局部权限设定
1、ACL管理命令
getfacl
setfacl
2、ACL形式
每个片段的形式都如:tag:name:perm
tag可以是下面形式的一种:
user 表示这是一个用户的ACL条目
group 表示这是一个用户组的ACL条目
other 表示这是其它的ACL条目
mask 表示这是一个掩码的ACL条目,最大的有效权限(权限阈值) name 可以是用户名或组名
perm 是指该用户或组所具有的权限,它是由"rwx"组成的一个字符串
3、setfacl
setfacl
使用 setfacl 设定文件访问控制列表
语法 setfacl {-m|-x|-b|-d ...} filename 选项
-m, --modify=acl 设置ACL条目,不可与-x一起使用
-x, --remove=acl 删除所设置的ACL条目,不可与-m一起使用
-b, --remove-all 删除所有ACL条目(包括默认的ACL条目)
-k, --remove-default 删除默认ACL条目
-R, -- recursion 递归设置ACL条目,包括余下的子目录或子文件都将被设置ACL条目
-d, --default 对目录设置默认的ACL条目,并且在改目录下创建的文件都将继承该目录的默认ACL条目(该选项只能对目录生效) 示例
setfacl -m u:zyq:rwx test.sh
user 简写为u,
group 简写为g
other 简写为o 注意:使用 -m 对other设置facl的时候,只需指明对应的权限即可,无需指明特定的用户;其次,对其他用户无法使用-x选项,因为,其他用户不同于所属主和所属组,只需给特定的权限即可
4、getfacl
getfacl
使用getfacl可以获取文件访问控制列表
语法:getfacl filename 选项
-a, --access 仅显示文件访问控制列表
-d, --default 仅显示默认的访问控制列表
-c, --omit-header 不显示注释表头 示例
getfacl test.txt
# file: test.txt //文件名
# owner: root //文件拥有者
# group: root //文件拥有组
user::rw- //说明该文件的拥有者拥有读和写的权限
group::rw- //说明该文件的拥有组有读和写的权限
mask::rw- //说明mask的权限是读和写
other::--- //说明其他人没有权限访问该文件
5、操作示例
//创建ACL条目
[root@localhost ~]# ll test
-rw-r--r--. 1 root root 0 8月 5 15:33 test
[root@localhost ~]# setfacl -m u:zhangsan:rw test
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:zhangsan:rw- //说明zhangsan用户对该文件拥有读和写的权限
group::r--
mask::rw- //mask权限说明zhangsan用户对改文件的权限最大只能是读和写
other::r-- //删除ACL条目
[root@localhost ~]# setfacl -x u:zhangsan test
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r-- //给目录设置默认的ACL条目
[root@localhost ~]# mkdir dir
[root@localhost ~]# ll -d dir
drwxr-xr-x. 2 root root 6 8月 5 15:41 dir
[root@localhost ~]# setfacl -m d:u:zhangsan:rw dir
[root@localhost ~]# getfacl dir/
# file: dir/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:zhangsan:rw-
default:group::r-x
default:mask::rwx
default:other::r-x //在dir目录下创建一个文件,看是否继承该目录的ACL条目
[root@localhost ~]# touch dir/file1
[root@localhost ~]# getfacl dir/file1
# file: dir/file1
# owner: root
# group: root
user::rw-
user:zhangsan:rw-
group::r-x #effective:r--
mask::rw-
other::r-- //删除dir目录的默认ACL条目
[root@localhost ~]# setfacl -k dir
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
或者
[root@localhost ~]# setfacl -b dir/
[root@localhost ~]# getfacl dir/
# file: dir/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
最新文章
- ClojureScript魔法堂:搭建开发环境
- Adobe Flash player 10 提示:Error#2044:未处理的IOErrorEvent. text=Error#2036:加载未完成 的解决方法
- IOS - Passbook
- 错误是无法将“XXX”转换为“System.CompenentModel.Design.Serialization.InstanceDescrip”问题的解决办法
- Java参数按值传递?按引用传递
- [置顶] 问题解决——XP线程池找不到QueueUserWorkItem
- 计算字符串的最长回文子串 :Manacher算法介绍
- js正则实现用户输入银行卡号的控制及格式化
- LinQ to SQL 增,删,改 代码演示
- 黑马程序员-- C语言交换两个整数变量值几种函数比较
- matlab函数:residue和residuez的用法
- C# 汉语转拼音
- Hibernate(六):映射一对多关联关系、双向一对多映射
- 将外部dwg图纸中指定带属性的块插入到当前图纸中
- Python自动化之跨域访问jsonp
- kafka-connect-hive sink实现要点小结
- MySQL的五种日期和时间类型
- The Rise of Database Sharding DATABASE SHARDING
- 跑monkey前开启/关闭系统通知栏
- api的使用机制:继承、实例化、实现(继承)配置、实例(参数化)配置、机制管理模块