ACE 継承規則
継承規則のセットに従って、継承可能な アクセス制御エントリ (ACE) が子オブジェクトに伝達されます。 システムは、DACL 内の ACE の優先順序に従って、子の 随意アクセス制御リスト ( DACL) に継承された ACE を配置します。 システムは、継承されたすべての ACE にINHERITED_ACE フラグを設定します。
コンテナーとコンテナー以外の子オブジェクトによって継承される ACE は、継承フラグの組み合わせによって異なります。 これらの継承規則は、DACL と システム アクセス制御リスト (SACL) の両方で同じように機能します。
親 ACE フラグ | 子 ACL への影響 |
---|---|
OBJECT_INHERIT_ACEのみ | 非コンテナー子オブジェクト: 有効な ACE として継承されます。 コンテナーの子オブジェクト: NO_PROPAGATE_INHERIT_ACE ビット フラグも設定されていない限り、コンテナーは継承専用 ACE を継承します。 |
CONTAINER_INHERIT_ACEのみ | 非コンテナー子オブジェクト: 子オブジェクトには影響しません。 コンテナーの子オブジェクト: 子オブジェクトは、有効な ACE を継承します。 NO_PROPAGATE_INHERIT_ACE ビット フラグも設定されていない限り、継承された ACE は継承可能です。 |
CONTAINER_INHERIT_ACEとOBJECT_INHERIT_ACE | 非コンテナー子オブジェクト: 有効な ACE として継承されます。 コンテナーの子オブジェクト: 子オブジェクトは、有効な ACE を継承します。 NO_PROPAGATE_INHERIT_ACE ビット フラグも設定されていない限り、継承された ACE は継承可能です。 |
継承フラグが設定されていない | 子コンテナーまたは非コンテナー オブジェクトには影響しません。 |
継承された ACE が子オブジェクトの有効な ACE である場合、システムは汎用権限を子オブジェクトの特定の権限にマップします。 同様に、システムは、CREATOR_OWNERなどの汎用 セキュリティ識別子 (SID) を適切な SID にマップします。 継承された ACE が継承専用 ACE の場合、ジェネリック権限またはジェネリック SID は変更されず、ACE が次世代の子オブジェクトによって継承されるときに適切にマップできます。
コンテナー オブジェクトが、コンテナーで有効であり、その子孫によって継承可能な ACE を継承する場合、コンテナーは 2 つの ACE を継承できます。 これは、継承可能な ACE にジェネリック情報が含まれている場合に発生します。 コンテナーは、ジェネリック情報を含む継承専用 ACE と、ジェネリック情報がマップされた有効な専用 ACE を継承します。
オブジェクト固有の ACE には、ACE を継承できるオブジェクトの種類を識別するための GUID を含めることができる InheritedObjectType メンバーがあります。
InheritedObjectType GUID が指定されていない場合、オブジェクト固有の ACE の継承規則は標準 ACE の場合と同じです。
InheritedObjectType GUID が指定されている場合、ACE は、OBJECT_INHERIT_ACEが設定されている場合は GUID に一致するオブジェクト、CONTAINER_INHERIT_ACE設定されている場合は GUID に一致するコンテナーによって継承できます。 現在、DS オブジェクトのみがオブジェクト固有の ACE をサポートしており、DS ではすべてのオブジェクト型がコンテナーとして扱われます。