共享资源-ACL 行为
有关 ACL 及其如何工作的信息,请参见root directory ACL文档。
ACL Behavior on Mode Change(模式更改时的 ACL 行为)
如果使用标准 Unix user/group/other 权限通过 chmod(2) 修改 ACL,简化的模式更改请求与现有 ACL 进行交互时,其交互方式因该属性的设置而异。
表 12-16 模式更改值
|
|
|
Discard ACL(放弃 ACL)
|
discard
|
不表示目录或文件模式的所有 ACL 条目都将被放弃。这是默认行为。
|
Mask ACL with mode(通过模式屏蔽 ACL)
|
mask
|
除非用户项与文件或目录的所有者具有相同的 UID,否则将减少权限,以使其不会大于组权限位。在这种情况下,减少 ACL 权限,以使其不会大于所有者权限位。如果未执行显式 ACL 集合操作,则 mask 值还会在模式更改之后保留 ACL。
|
Do not change ACL(不更改 ACL)
|
passthrough
|
除生成用于表示文件或目录的新模式的 ACL 条目外,不对 ACL 进行任何更改。
|
|
ACL Inheritance Behavior(ACL 继承行为)
创建新文件或目录时,可能会从父目录继承现有 ACL 设置。此属性控制此继承的方式。以下属性设置通常仅影响标记为可继承的 ACL 条目-不管对此属性做何设置,均不会传播到其他条目。但是,与 SMB 结合使用时所有普通 ACL 条目都是可继承条目。普通 ACL 表示传统的 Unix owner/group/other 条目。
表 12-17 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 会将先前虚构的继承位转换为真实的继承位。
所有上述行为在未来发行版中都有可能更改。