根目录 ACL
通过访问控制列表管理对文件和目录的细粒度访问。ACL 描述了为特定用户或组授予的权限(如果有)。此设备支持 NFSv4.0 和 NFSv4.1 样式的 ACL,还可通过 SMB 访问 ACL。不支持 POSIX 草案 ACL(由 NFSv3 使用)。某些普通 ACL 可通过 NFSv3 表示,但是在通过 NFSv3 进行访问时,对 ACL 进行的复杂更改可能导致出现未定义的行为。
与根目录访问一样,此属性仅影响文件系统的根目录。ACL 可通过带内协议管理进行控制;BUI 和 CLI 提供了一种仅针对文件系统的根目录设置 ACL 的方式。如果没有 BUI 这种选择,则可以使用带内管理工具。更改此 ACL 不会影响文件系统中的现有文件和目录。新创建的文件和目录可能继承、也可能不继承这些设置,具体取决于 ACL 继承行为。但是,使用 SMB 在具有普通 ACL 的目录中创建文件时,将继承所有 ACL 条目。
一个 ACL 由任意数量的 ACE(Access Control Entry,访问控制条目)组成。每个 ACE 描述了一个类型/目标、一组权限、数个继承标志和一个模式。ACE 按顺序(从 ACL 的开头开始)应用,以确定是否允许给定操作。有关通过数据协议对 ACL 进行带内配置的信息,请查阅相应的客户机文档。下面介绍了用于管理 ACL 的 BUI 界面以及对根目录的影响。
表 125 共享资源-ACL 类型
|
|
Owner(所有者)
|
目录的当前所有者。如果更改所有者,此 ACE 将应用于新所有者。
|
Group(组)
|
目录的当前组。如果更改组,此 ACE 将应用于新组。
|
Everyone(所有人)
|
任意用户。
|
Named User(指定的用户)
|
由 "target"(目标)字段指定的用户。可以用用户 ID 或可由当前名称服务配置解析的名称来指定该用户。
|
Named Group(指定的组)
|
由 "target"(目标)字段指定的组。可以用组 ID 或可由当前名称服务配置解析的名称来指定该组。
|
|
表 126 共享资源-ACL 模式
|
|
![访问控制列表:允许规则 image:访问控制列表:允许规则](figures/acl_allow.png)
Allow(允许)
|
显式授予 ACE 目标权限。
|
![访问控制列表:拒绝规则 image:访问控制列表:拒绝规则](figures/acl_deny.png)
Deny(拒绝)
|
显式拒绝授予 ACE 目标权限。
|
|
表 127 共享资源-ACL 权限
|
|
|
|
Read(读取)
|
|
(r)
|
Read Data/List Directory(读取数据/列出目录)
|
列出目录内容的权限。由文件继承时,此权限允许读取文件的数据。
|
(x)
|
Execute File/Traverse Directory(执行文件/遍历目录)
|
此权限允许遍历(查找)目录中的条目。由文件继承时,此权限允许执行文件。
|
(a)
|
Read Attributes(读取属性)
|
读取文件的基本属性(非 ACL)的权限。基本属性视为静态级别属性,授予此权限意味着用户可执行 ls 和 stat 等效项。
|
(R)
|
Read Extended Attributes(读取扩展属性)
|
此权限允许读取文件的扩展属性或查找扩展属性目录。
|
|
写入
|
|
(w)
|
Write Data/Add File(写入数据/添加文件)
|
向目录中添加新文件的权限。由文件继承时,此权限允许在文件中的任意位置(在文件偏移范围内)修改数据。此权限包括增加文件大小或在任意偏移位置处写入的能力。
|
(p)
|
Append Data/Add Subdirectory(附加数据/添加子目录)
|
此权限允许在目录中创建子目录。由文件继承时,此权限允许修改文件的数据(仅允许从文件末尾开始修改)。当前不支持将此权限应用到文件。
|
(d)
|
Delete(删除)
|
删除文件的权限。
|
(D)
|
Delete Child(删除子项)
|
此权限允许删除目录中的文件。从 2011.1 软件发行版开始,如果设置了 sticky 位,子文件只能由文件所有者删除。
|
(A)
|
Write Attributes(写入属性)
|
此权限允许更改与文件或目录关联的时间。
|
(W)
|
Write Extended Attributes(写入扩展属性)
|
创建扩展属性或向扩展属性目录进行写入的权限。
|
|
管理
|
|
(c)
|
Read ACL/Permissions(读取 ACL/权限)
|
此权限允许读取 ACL。
|
(C)
|
Write ACL/Permissions(写入 ACL/权限)
|
此权限允许写入 ACL 或更改基本访问模式。
|
(o)
|
Change Owner(更改所有者)
|
此权限允许更改所有者。
|
|
继承
|
|
(f)
|
Apply to Files(应用于文件)
|
继承到目录中所有新创建的文件。
|
(d)
|
Apply to Directories(应用于目录)
|
继承到目录中所有新创建的目录。
|
(i)
|
Do not apply to self(不应用于自身)
|
当前 ACE 不应用到当前目录,但会应用到子项。此标志要求设置了 "Apply to Files"(应用于文件)或 "Apply to Directories"(应用于目录)。
|
(n)
|
Do not apply past children(不用过去的子项)
|
当前 ACE 应仅在树中的一个级别继承,即由直接子项继承。此标志要求设置了 "Apply to Files"(应用于文件)或 "Apply to Directories"(应用于目录)。
|
|
在创建共享资源时如果选择了使用 Windows 默认权限的选项时,将为共享资源的根目录创建具有以下三个条目的 ACL:
表 128 共享资源根目录实体
|
|
|
Owner(所有者)
|
允许
|
完全控制
|
Group(组)
|
允许
|
读取和执行
|
Everyone(所有人)
|
允许
|
读取和执行
|
|
在 CLI 中,在导航到 shares 上下文并选择项目和文件系统之后设置根目录的 ACL 属性。使用冒号分隔 ACE 属性,使用逗号分隔多个 ACE 条目。target 和 inheritance 字段是可选的。要设置属性,请输入 set root_acl=ace1,ace2,ace3,...,其中 acen 为:
type:<target:>permissions:<inheritance:>mode
示例:
set root_acl=owner@:r:allow
set root_acl=everyone@:rwx:fd:allow
set root_acl=user:root:r:allow