01-访问控制列表
第17章 访问控制列表
15.4节已经介绍了传统UNIX(及Linux)对文件权限的规划方案。对于诸多应用来说,这一方案已经能够满足要求。但还有些应用,需要在为特定用户和组授权时进行更为精密的控制。为满足这一需求,许多UNIX系统对传统的UNIX文件权限模型进行了名为访问控制列表(ACL)的扩展。利用ACL,可以在任意数量的用户和组之中,为单个用户或组指定文件权限。自版本2.6起,Linux内核开始支持ACL。
各文件系统对ACL的支持属于可选项,由“File systems”菜单下的内核配置选项控制。Reiserfs文件系统自内核2.6.7起开始支持ACL。 要想在ext2、ext3、ext4或reiserfs文件系统上创建ACL,装配相应的文件系统时需要带mount –o acl选项。
针对UNIX系统,从未正式出台过ACL的相关标准。人们曾以POSIX.1e和POSIX.2c标准草案的形式对此进行过尝试,二者分别定义了服务于ACL的API和shell命令(以及诸如能力之类的其他特性)。最终,这一标准化进程以失败告终,标准草案也随之撤销。不过,诸多UNIX(包括Linux)对ACL的实现还是遵循上述标准草案(通常是根据最终稿,即第17号草案)。但由于在各种ACL实现之间还存在着许多差异(部分原因是由于标准草案还不尽完善),故而如果运用了ACL技术,就会危及应用的可移植性。
本章将介绍ACL,并就其用法提供简明教程。此外,还会讲解用来操纵和获取ACL的某些库函数。鉴于此类库函数数量众多,本章不会逐一对其做深入探讨。(详细信息可参考手册页。)