ACL

发表于:2007-07-04来源:作者:点击数: 标签:
acl 第 8章 . 访问存取控制列表 文件和目录为它们的所有者、组群、和所有其他系统用户规定了许可权限。但是,这些权限设置也有其局限性。例如:不同的用户无法被配置使用不同的权限。访问存取控制列表( Access Control Lists,ACL )就由此而生。 红帽企业

acl

第 8章 . 访问存取控制列表

文件和目录为它们的所有者、组群、和所有其他系统用户规定了许可权限。但是,这些权限设置也有其局限性。例如:不同的用户无法被配置使用不同的权限。访问存取控制列表(Aclearcase/" target="_blank" >ccess Control Lists,ACL)就由此而生。

红帽企业 Linux 3 内核为 ext3 文件系统和 NFS 导出的文件系统提供 ACL 支持。ACL 在通过 Samba 存取的 ext3 文件系统上也被识别。

除了在内核中的支持外,你还需要 acl 软件包才能实现 ACL。其中包含用来添加、修改、删除、和检索 ACL 信息的工具。

cpmv 命令会复制或转移任何与文件和目录相关的 ACL。

8.1. 挂载文件系统

在文件或目录中使用 ACL 之前,它们所在的分区必须使用 ACL 支持来挂载。如果它是本地的 ext3 文件系统,它可以使用以下命令来挂载:

mount -t ext3 -o acl <device-name> <partition>

例如:

mount -t ext3 -o acl /dev/hdb3 /work

如果分区被列在 /etc/fstab 文件中,该分区的项目就能够包括 acl 选项,如:

LABEL=/work      /work       ext3    acl        1 2

如果某个 ext3 文件系统是通过 Samba 来存取的,而且其中还启用了 ACL,ACL 就会被识别,这是因为 Samba 已经使用 --with-acl-support 选项被编译了。在存取或挂载 Samba 共享的时候不需要任何特殊标志。

8.1.1. NFS

按照默认设置,如果被 NFS 服务器导出的文件系统支持 ACL,并且 NFS 客户能够读取 ACL,ACL 就会被客户系统利用。

在配置服务器的时候,若要禁用 NFS 共享上的 ACL,则在 /etc/exports 文件中包括 no_acl 选项。要在客户上挂载 NFS 共享的时候禁用其中的 ACL,通过命令行或 /etc/fstab 文件使用 no_acl 选项来挂载它。

8.2. 设置存取 ACL

ACL 有两种:存取 ACL(access ACLs)和默认 ACL(default ACLs)。存取 ACL 是对指定文件或目录的存取控制列表。默认 ACL 只能和目录相关。如果目录中的文件没有存取 ACL,它就会使用该目录的默认 ACL。默认 ACL 是可选的。

ACL 可以按以下条件配置:

  1. 每用户

  2. 每组群

  3. 通过有效权限屏蔽

  4. 为不属于文件用户组群的用户配置

setfacl 工具为文件和目录设置 ACL。使用 -m 来添加或修改文件或目录的 ACL:

setfacl -m <rules> <files>

规则(<rules>)必须使用以下格式指定。同一条命令中可以指定多项规则,只要它们是用逗号分开即可。

u:<uid>:<perms>

为用户设置存取 ACL。用户名或 UID 必须被指定。用户可以是系统上的任何合法用户。

g:<gid>:<perms>

为组群设置存取 ACL。组群名称或 GID 必须被指定。组群可以是系统上的任何合法组群。

m:<perms>

设置有效权限屏蔽。该屏蔽是组群所有者和所有用户和组群项目的权限的合集。

o:<perms>

为文件的组群用户之外的用户设置存取 ACL。

原文转自:http://www.ltesting.net