前文回顾:1. 一篇文章了解Linux操作系统的权限管理2. Linux安全模块框架(LSM)原理与代码实现解析3. Linux的RWX权限管理实现详解及chmod使用如果阅读本文时发现有不清楚的地方,欢迎大家留言。作者会尽量回答大家的问题。
前面我们介绍了RWX-UGO的权限控制方法,但是这种方法过于简单,很多场景无法满足要求。因此,在Linux中还有另外一套权限控制方法,也就是ACL控制方法。
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在RWX-UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。
如图1所示,假设有个工资单文件。显然财务人员张三是可以读写的,因为他要生成这个工资单,并可以更正错误。而工资单的干系人李四肯定是可以读的,但是不允许乱改。出于工资保密,其他人是不允许读,也不允许写。这种权限的要求采用RWX-UGO的方式就很难实现。
1、ACL的基本概念和原理
我们可以手动设置文件或者目录的ACL以实现对文件或者目录的访问控制。同时ACL还有一个特性是实现对父目录ACL属性的继承。因此,根据两者的差异,ACL分为两类。
access ACL:每一个对象(文件/目录)都可以关联一个 ACL 来控制其访问权限,这样的 ACL 被称为 access ACL。default ACL:目录关联的一种 ACL。当目录具备该属性时,在该目录中创建的对象(文件或者子目录)默认 具有相同的ACL。通过ACL可以实现比较复杂的访问权限组合,权限