一、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

最新文章

  1. ClojureScript魔法堂:搭建开发环境
  2. Adobe Flash player 10 提示:Error#2044:未处理的IOErrorEvent. text=Error#2036:加载未完成 的解决方法
  3. IOS - Passbook
  4. 错误是无法将“XXX”转换为“System.CompenentModel.Design.Serialization.InstanceDescrip”问题的解决办法
  5. Java参数按值传递?按引用传递
  6. [置顶] 问题解决——XP线程池找不到QueueUserWorkItem
  7. 计算字符串的最长回文子串 :Manacher算法介绍
  8. js正则实现用户输入银行卡号的控制及格式化
  9. LinQ to SQL 增,删,改 代码演示
  10. 黑马程序员-- C语言交换两个整数变量值几种函数比较
  11. matlab函数:residue和residuez的用法
  12. C# 汉语转拼音
  13. Hibernate(六):映射一对多关联关系、双向一对多映射
  14. 将外部dwg图纸中指定带属性的块插入到当前图纸中
  15. Python自动化之跨域访问jsonp
  16. kafka-connect-hive sink实现要点小结
  17. MySQL的五种日期和时间类型
  18. The Rise of Database Sharding DATABASE SHARDING
  19. 跑monkey前开启/关闭系统通知栏
  20. api的使用机制:继承、实例化、实现(继承)配置、实例(参数化)配置、机制管理模块

热门文章

  1. Scrapy框架的安装
  2. 201871030108-冯永萍 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
  3. 《构建之法》& CI/CD调研
  4. 【剑指offer】8:跳台阶
  5. PAT B1030/A1085 完美数列
  6. linux系统调用号查询(pwn)
  7. 刚转行1年测试新手:学习Python编程经验实战分享
  8. 阿里巴巴面试-Java后端-社招5面技术总结(Offer已拿)
  9. php图片合成【png图片】
  10. 使用 mvn install 命令将本地jar包注册到本地maven仓库