13.3.1 什么是 ACL 与如何支持启动 ACL
ACL 是 Access Control List 的缩写,主要的目的是在提供传统的 owner,group,others 的read,write,execute 权限之外的细部权限设置。ACL 可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范,对于需要特殊权限的使用状况非常有帮助。
那 ACL 主要可以针对哪些方面来控制权限呢?他主要可以针对几个项目:
使用者 (user):可以针对使用者来设置权限;
群组 (group):针对群组为对象来设置其权限;
默认属性 (mask):还可以针对在该目录下在创建新文件/目录时,规范新数据的默认权限;
如何启动 ACL
事实上,原本 ACL 是 unix-like 操作系统的额外支持项目,但因为近年以来 Linux 系统对权限细部设置的热切需求, 因此目前 ACL 几乎已经默认加入在所有常见的 Linux 文件系统的挂载参数中 (ext2/ext3/ext4/xfs等等)。
13.3.2 ACL 的设置技巧: getfacl, setfacl
getfacl:取得某个文件/目录的 ACL 设置项目;
setfacl:设置某个目录/文件的 ACL 规范。
setfacl 指令用法介绍及最简单的“ u:帐号:权限 ”设置
上面谈到的是 acl 的选项功能,那么如何设置 ACL 的特殊权限呢?特殊权限的设置方法有很多, 我们先来谈谈最常见的,就是针对单一使用者的设置方式:
上述动作为最简单的 ACL 设置,利用“ u:使用者:权限 ”的方式来设置的。设置前请加上 -m这个选项。 如果一个文件设置了 ACL 参数后,他的权限部分就会多出一个 + 号了!但是此时你看到的权限与实际权限可能就会有点误差。
getfacl 指令用法
特定的单一群组的权限设置:“ g:群组名:权限 ”
使用默认权限设置目录未来文件的 ACL 权限继承“ d:[u|g]:[user|group]:权限 ”
通过这个“针对目录来设置的默认 ACL 权限设置值”的项目,我们可以让这些属性继承到次目录下面,通过“ setfacl -b文件名 ”可以让 ACL 的属性全部消失。