Go to main content

Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.8.0

退出打印视图

更新时间: 2018 年 11 月
 
 

ACL 继承行为

创建新文件或目录时,可能会从父目录继承现有 ACL 设置。此属性控制此继承的方式。以下属性设置通常仅影响标记为可继承的 ACL 条目-不管对此属性做何设置,均不会传播到其他条目。但是,与 SMB 结合使用时所有普通 ACL 条目都是可继承条目。普通 ACL 表示传统的 UNIX owner/group/other 条目。要编辑 ACL 继承行为,请参见“编辑项目”BUICLI

表 124  ACL 继承行为值
BUI 值
CLI 值
说明
Do not inherit entries(不继承条目)
discard
不继承任何 ACL 条目。根据所用客户机和协议创建文件或目录。
Only inherit deny entries(仅继承权限为 deny(拒绝)的条目)
noallow
仅继承指定了 "deny"(拒绝)权限的可继承 ACL 条目。
Inherit all but "write ACL" and "change owner"(全部继承但 "write ACL"(写入 ACL)和 "change owner"(更改所有者)除外)
restricted
继承 ACL 条目时删除 "write_acl" 和 "write_owner" 权限,但不更改可继承 ACL 条目的其他权限。这是默认值。
Inherit all entries(继承所有条目)
passthrough
继承所有可继承的 ACL 条目。"passthrough" 模式通常用于在目录树中使用相同模式创建所有“数据”文件。管理员设置 ACL 继承,使所有文件以某个特定模式(例如 0664 或 0666)创建。
Inherit all but "execute" when not specified(未指定时全部继承但 "execute"(执行)除外)
passthrough-x
此行为与 "passthrough" 的行为基本相同,只是仅在文件创建模式还要求执行位时,owner、group 和 everyone ACL 条目才会继承执行权限。如果 "passthrough" 设置可以按预期处理数据文件,但是您希望将文件创建模式中的执行位选择性地包括到继承的 ACL 中,可以使用此设置。一个示例是通过工具生成的输出文件,例如 "cc" 或 "gcc"。如果继承的 ACL 不包括执行位,通过编译器生成的输出可执行文件将无法执行,除非使用 chmod(1) 更改此文件的权限。
Inherit all, but preserve mode from client(全部继承但保留客户机的模式)
passthrough-mode-preserve
可继续 ACL 条目是继承来的,同时会保留应用程序指定的创建模式。这会保留继承位,因此 SMB 创建的 ACL 可以很好地现时与通过 NFS 和 SMB 访问的共享资源互操作。此属性设置仅在为带模式保留的 ACL 传承应用了延迟更新后可用。有关更多信息,请参见Oracle ZFS Storage Appliance 客户服务手册中的延迟更新

使用 SMB 在具有普通 ACL 的目录中创建文件时,将继承所有 ACL 条目。因此,会出现以下行为:

  • 继承位的显示会因在 SMB 还是 NFS 中查看而有所不同。在 SMB 中查看 ACL 目录时,会显示继承位。在 NFS 中,不会显示继承位。

  • 使用 SMB 在目录中创建文件时,其 ACL 条目将显示为已继承;但是,通过 NFS 查看时,此目录没有任何可继承的 ACL 条目。

  • 如果 ACL 发生了更改,不再为普通条目(例如通过添加访问控制条目 (access control entry, ACE)),不会出现此行为。

  • 如果使用 SMB 修改了 ACL,则产生的 ACL 会将先前虚构的继承位转换为真实的继承位。

相关主题