访问控制继承
对象访问控制列表 (ACL) 中的访问控制条目(ACL)可以属于以下两个类别之一:
- 有效的 ACL:此类别中的 ACE 适用于该对象。
- 继承 ACL:此类别中的 ACE 由在容器中创建的对象继承。
DACL 中的每个 ACE 都可以属于一个或多个类别。 ACE 所属的类别由 ACE 中设置的继承控制标志确定。
可以在 ACE 的 AceFlags 属性中设置三个继承控制标志。
标记 | 说明 |
---|---|
ADS_ACEFLAG_INHERIT_ACE | 此标志指示 ACE 是继承 ACL 的一部分,子对象继承此 ACE 的继承控制标志。 |
ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE | 此标志指示 ACE 是继承 ACL 的一部分,但不会将继承控制标志传播到直接子对象(直接后代),ACE 在直接子对象上有效。 |
ADS_ACEFLAG_INHERIT_ONLY_ACE | 此标志指示 ACE 不是有效 ACL 的一部分。 如果未设置此标志,则 ACE 是有效 ACL 的一部分。 此标志可用于设置可由子对象继承的权限,但不会影响容器的可访问性。 例如,如果 ACE 旨在由组织单位中的用户对象继承,则可能不应强制执行它以访问组织单位本身。 |
仅当存在ADS_ACEFLAG_INHERIT_ACE时,ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE和ADS_ACEFLAG_INHERIT_ONLY_ACE标志才有意义。 这是因为ADS_ACEFLAG_INHERIT_ACE标志将继承行为添加到可继承的 ACE,但不定义继承类型。 ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE和ADS_ACEFLAG_INHERIT_ONLY_ACE标志定义特定类型的继承行为。
请务必记住,系统还会根据 ACE 的类型和状态设置以下标志。
标记 | 说明 |
---|---|
ADS_ACEFLAG_INHERITED_ACE | 此标志指示 ACE 已继承。 |
ADS_ACEFLAG_VALID_INHERIT_FLAGS | 此标志指示继承标志有效。 |
下表列出了 ACE 的 AceFlags 属性的不同标志组合的效果。
标记 | 对包含 ACE 的对象的影响 | 对直接子对象的影响 | 对直接子级以下对象的影响 |
---|---|---|---|
未设置标志。 | 有效的 ACE:ACE 适用于对象。 | ACE 不继承。 | ACE 不继承。 |
ADS_ACEFLAG_INHERIT_ACE | 有效的 ACE | ACE 继承。 ACE 是一个有效的 ACE。 |
ACE 继承。 ACE 是一个有效的 ACE。 |
| ADS_ACEFLAG_INHERIT_ACE ADS_ACEFLAG_INHERIT_ONLY_ACE | 不是有效的 ACE:ACE 不适用于对象。 | ACE 继承。 ACE 是一个有效的 ACE。 |
ACE 继承。 ACE 是一个有效的 ACE。 |
ADS_ACEFLAG_INHERIT_ACE | ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE | 有效的 ACE | ACE 是继承的,但没有继承标志。 ACE 是有效的 ACE |
ACE 不继承。 |
| ADS_ACEFLAG_INHERIT_ACE ADS_ACEFLAG_INHERIT_ONLY_ACE ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE | | 不是有效的 ACE。 | ACE 是继承的,但没有继承标志。 ACE 是有效的 ACE。 |
ACE 不继承。 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈