ACE继承

【勇芳软件工作室】汉化HomePreviousNext

ACL中的每个ACE以ACE_HEADER结构结构开头,指定ACE如何继承。除此之外,ACE_HEADER结构中的标志指定ACE是由容器对象(目录或注册表项)还是非容器对象(如文件)继承。

容器对象中的ACE继承

本节概述了容器对象对ACE继承的规则。

如果在父ACE的ACE_HEADER结构中设置了CONTAINER_INHERIT_ACE标志,则ACE的副本将添加到继承的ACL的末尾,并对继承的ACE执行以下操作:

*继承的ACE中的所有继承标志都将被清除。

*如果ACE包含访问掩码并且设置了任何通用访问标志,则通用权限将映射到子对象类型的标准和特定权限。

如果CONTAINER_INHERIT_ACE标志和NO_PROPAGATE_INHERIT_ACE标志均未设置,则将设置OBJECT_INHERIT_ACE和INHERIT_ONLY_ACE标志。如果CONTAINER_INHERIT_ACE和NO_PROPAGATE_INHERIT_ACE都已设置,则ACE将添加到继承的ACL的末尾。

如果父级ACE的ACE_HEADER结构中没有设置NO_PROPAGATE_INHERIT_ACE和CONTAINER_INHERIT_ACE标志,则ACE的副本将添加到继承的ACL的末尾,并设置其INHERIT_ONLY_ACE标志。

否则,ACE不会继承。

非容器对象中的ACE继承

以下规则控制ACE以外的对象的继承。

如果父级ACE的ACE_HEADER结构中设置了OBJECT_INHERIT_ACE标志,则ACE将复制到继承的ACL的末尾,并且:

*继承的ACE中的INHERIT_ONLY_ACE标志被清除。

*继承的ACE中的NO_PROPAGATE_INHERIT_ACE,OBJECT_INHERIT_ACE和CONTAINER_INHERIT_ACE标志将被清除。

*如果ACE包含访问掩码,并且如果设置了任何通用访问标志,则通用权限将映射到子对象类型的标准和特定权限。

否则,ACE不会继承。