今天看一下ext2文件系统源代码的acl.h文件的源代码,这个文件的源代码并不长,不到一百行,注释我都用中文的,希望大家理解应该没有问题,有什么问题欢迎骚扰哦。
首先我想说一下什么是acl,之前的linux系统对于文件的权限管理都是9位的管理方式,user,group,other各三位,分别是rwx,读写执行三个权限,但是后来发现这种方式有缺陷,所以呢,访问控制列表ACL就应运而生。
比如user1,user2和user3都在group组里边,但是user1的文件只想让user2查看,而不想让user3查看,为此,user1需要建立一个只有user1和user2的组,这不但带来了不必要的开销,也是有安全隐患的。而现在用acl机制,可以给予用户,目录以单独的权限,使用命令 setfacl -m user:user3:--- file 就可以使 user3 对 file 没有任何权限。
我们使用getfacl file, 可以看到如下输出 :
user::rwx
user:user2:rwx
group::r-w
other::r--
mask::rwx
其中每一行都对应着一条具体的访问规则,就对应着一个acl的结构体。在posix标准里,一个acl结构体定义如下
typedef struct {
__le16 e_tag;
__le16
首先我想说一下什么是acl,之前的linux系统对于文件的权限管理都是9位的管理方式,user,group,other各三位,分别是rwx,读写执行三个权限,但是后来发现这种方式有缺陷,所以呢,访问控制列表ACL就应运而生。
比如user1,user2和user3都在group组里边,但是user1的文件只想让user2查看,而不想让user3查看,为此,user1需要建立一个只有user1和user2的组,这不但带来了不必要的开销,也是有安全隐患的。而现在用acl机制,可以给予用户,目录以单独的权限,使用命令 setfacl -m user:user3:--- file 就可以使 user3 对 file 没有任何权限。
我们使用getfacl file, 可以看到如下输出 :
user::rwx
user:user2:rwx
group::r-w
other::r--
mask::rwx
其中每一行都对应着一条具体的访问规则,就对应着一个acl的结构体。在posix标准里,一个acl结构体定义如下
typedef struct {
__le16 e_tag;
__le16