共享资源-ACL 继承行为
创建新文件或目录时,可能会从父目录继承现有 ACL 设置。此属性控制此继承的方式。以下属性设置通常仅影响标记为可继承的 ACL 条目-不管对此属性做何设置,均不会传播到其他条目。但是,与 SMB 结合使用时所有普通 ACL 条目都是可继承条目。普通 ACL 表示传统的 Unix owner/group/other 条目。
表 5-14 ACL 继承行为值
|
|
|
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) 更改此文件的权限。
|
|
使用 SMB 在具有普通 ACL 的目录中创建文件时,将继承所有 ACL 条目。因此,会出现以下行为:
-
继承位的显示会因在 SMB 还是 NFS 中查看而有所不同。在 SMB 中查看 ACL 目录时,会显示继承位。在 NFS 中,不会显示继承位。
-
使用 SMB 在目录中创建文件时,其 ACL 条目将显示为已继承;但是,通过 NFS 查看时,此目录没有任何可继承的 ACL 条目。
-
如果 ACL 发生了更改,不再为普通条目(例如通过添加访问控制条目 (access control entry, ACE)),不会出现此行为。
-
如果使用 SMB 修改了 ACL,则产生的 ACL 会将先前虚构的继承位转换为真实的继承位。
所有上述行为在未来发行版中都有可能更改。