Oracle Solaris ZFS 管理指南

ACL 设置语法的说明

基本的 ACL 格式有如下两种:

用于设置普通 ACL 的语法

ACL 很普通,因为它仅表示传统的 UNIX owner/group/other 项。

chmod [options] A[index]{+|=}owner@ |group@ |everyone@: access-permissions/...[:inheritance-flags]: deny | allow file

chmod [options] A-owner@, group@, everyone@:access-permissions /...[:inheritance-flags]:deny | allow file ...

chmod [options] A[index]- file

用于设置非普通 ACL 的语法

chmod [options] A[index]{+|=}user|group:name:access-permissions /...[:inheritance-flags]:deny | allow file

chmod [options] A-user|group:name:access-permissions /...[:inheritance-flags]:deny | allow file ...

chmod [options] A[index]- file

owner@, group@, everyone@

标识用于普通 ACL 语法的 ACL-entry-type。有关 ACL 项类型的说明,请参见表 8–1

user|group: ACL-entry-ID(username 或 groupname)

标识用于显式 ACL 语法的 ACL-entry-type用户和组的 ACL-entry-type 还必须包含 ACL-entry-IDusernamegroupname。有关 ACL 项类型的说明,请参见表 8–1

access-permissions/.../

标识授予或拒绝的访问权限。有关 ACL 访问权限的说明,请参见表 8–2

inheritance-flags

标识一组可选的 ACL 继承标志。有关 ACL 继承标志的说明,请参见表 8–3

deny | allow

标识授予还是拒绝访问权限。

在以下示例中,ACL-entry-ID 值无意义。


group@:write_data/append_data/execute:deny

由于 ACL 中包括特定用户 (ACL-entry-type),因此以下示例中包括 ACL-entry-ID


0:user:gozer:list_directory/read_data/execute:allow

显示的 ACL 项与以下内容类似:


2:group@:write_data/append_data/execute:deny

本示例中的 2索引 ID,用于标识较大 ACL 中的 ACL 项,较大的 ACL 中可能包含对应于属主、特定 UID、组和各用户的多个项。可以使用 chmod 命令指定索引 ID,以标识 ACL 要修改的部分。例如,可将索引 ID 3 标识为 chmod 命令语法中的 A3,与以下内容类似:


chmod A3=user:venkman:read_acl:allow filename

下表介绍了 ACL 项类型,即属主、组和其他对象的 ACL 表示形式。

表 8–1 ACL 项类型

ACL 项类型 

说明 

owner@

指定授予对象属主的访问权限。 

group@

指定授予对象所属组的访问权限。 

everyone@

指定向不与其他任何 ACL 项匹配的任何用户或组授予的访问权限。 

user

通过用户名指定向对象的其他用户授予的访问权限。此项必须包括 ACL-entry-ID,其中包含 usernameuserID。如果该值不是有效的数字 UID 或 username,则该 ACL 项的类型无效。

group

通过组名指定向对象的其他组授予的访问权限。此项必须包括 ACL-entry-ID,其中包含 groupnamegroupID。如果该值不是有效的数字 UID 或 groupname,则该 ACL 项的类型无效。

下表介绍了 ACL 访问权限。

表 8–2 ACL 访问权限

访问权限 

缩写访问权限 

说明 

add_file

w

向目录中添加新文件的权限。 

add_subdirectory

p

在目录中创建子目录的权限。 

append_data

p

占位符。当前未实现。 

delete

d

删除文件的权限。 

delete_child

D

删除目录中的文件或目录的权限。 

execute

x

执行文件或搜索目录内容的权限。 

list_directory

r

列出目录内容的权限。 

read_acl

c

读取 ACL 的权限 (ls)。

read_attributes

a

读取文件的基本属性(非 ACL)的权限。将基本属性视为状态级别属性。允许此访问掩码位意味着该实体可以执行 ls(1) 和 stat(2)。

read_data

r

读取文件内容的权限。 

read_xattr

R

读取文件的扩展属性或在文件的扩展属性目录中执行查找的权限。 

synchronize

s

占位符。当前未实现。 

write_xattr

W

创建扩展属性或向扩展属性目录进行写入的权限。 

向用户授予此权限意味着用户可为文件创建扩展属性目录。属性文件的权限可以控制用户对属性的访问。 

write_data

w

修改或替换文件内容的权限。 

write_attributes

A

将与文件或目录关联的时间戳更改为任意值的权限。 

write_acl

C

编写 ACL 或使用 chmod 命令修改 ACL 的权限。

write_owner

o

更改文件的属主或组的权限,或者对文件执行 chownchgrp 命令的能力。

获取文件拥有权的权限或将文件的组拥有权更改为由用户所属组的权限。如果要将文件或组的拥有权更改为任意用户或组,则需要 PRIV_FILE_CHOWN 权限。