訪問控制繼承

物件存取控制清單中的存取控制專案 (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_ACEADS_ACEFLAG_INHERIT_ONLY_ACE 旗標才有意義。 這是因為 ADS_ACEFLAG_INHERIT_ACE 旗標會將繼承行為新增至可繼承的 ACE,但不會定義繼承的類型。 ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACEADS_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_ACEADS_ACEFLAG_INHERIT_ONLY_ACE 不是有效的 ACE:ACE 不適用於 物件。 ACE 是繼承的。 ACE 是有效的 ACE。
ACE 是繼承的。 ACE 是有效的 ACE。
| ADS_ACEFLAG_INHERIT_ACEADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE 有效的 ACE ACE 是繼承的,但沒有繼承旗標。 ACE 是有效的 ACE
ACE 不會繼承。
| ADS_ACEFLAG_INHERIT_ACEADS_ACEFLAG_INHERIT_ONLY_ACE | ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE 不是有效的 ACE。 ACE 是繼承的,但沒有繼承旗標。 ACE 是有效的 ACE。
ACE 不會繼承。