Regole di ereditarietà ACE
Il sistema propaga automaticamente voci di controllo di accesso (ACEs) agli oggetti figlio in base a un set di regole di ereditarietà. Il sistema inserisce gli ACE ereditati nell'elenco di controllo di accesso discrezionale (DACL) dell'elemento figlio in base all'ordine preferito degli ACE in un DACL.
Gli ACE ereditati da oggetti figlio contenitore e non contenitore variano a seconda delle combinazioni di flag di ereditarietà. Queste regole di ereditarietà funzionano allo stesso modo per le licenze DACL e elenchi di controllo di accesso di sistema (SACLs).
Flag ACE principale | Effetto sull'ACL figlio |
---|---|
solo per OBJECT_INHERIT_ACE | Oggetti figlio non contenitore: ereditati come voci di controllo accesso efficaci (ACE). Oggetti figlio contenitore: i contenitori ereditano un ace di sola eredita a meno che non sia impostato anche il flag di bit NO_PROPAGATE_INHERIT_ACE. |
Solo CONTAINER_INHERIT_ACE | Oggetti figlio non contenitore: nessun effetto sull'oggetto figlio. Oggetti figlio contenitore: l'oggetto figlio eredita un ACE effettivo. L'ACE ereditato è ereditabile a meno che il flag di bit NO_PROPAGATE_INHERIT_ACE non sia impostato anche. |
CONTAINER_INHERIT_ACE e OBJECT_INHERIT_ACE | Oggetti figlio non contenitore: ereditati come voci di controllo accesso efficaci. Oggetti figlio contenitore: l'oggetto figlio eredita un ace effettivo. L'ACE ereditato è trasmissibile a meno che non venga impostato anche il flag di bit NO_PROPAGATE_INHERIT_ACE. |
Nessun flag di ereditarietà impostato | Nessun effetto sugli oggetti contenitore figlio o non contenitore. |
Se un ACE ereditato è un ACE effettivo per l'oggetto figlio, il sistema esegue il mapping di tutti i diritti generici ai diritti specifici per l'oggetto figlio. Analogamente, il sistema esegue il mapping degli identificatori di sicurezza generici (SID), ad esempio CREATOR_OWNER, al SID appropriato. Se un ACE ereditato è un ACE di sola eredità, tutti i diritti generici o i SID generici vengono lasciati invariati affinché possano essere mappati correttamente quando l'ACE viene ereditato dalla generazione successiva di oggetti figlio.
Per un caso in cui un oggetto contenitore eredita un ACE che è sia efficace sul contenitore che ereditabile dai suoi discendenti, il contenitore può ereditare due ACE. Ciò si verifica se l'ACE ereditabile contiene informazioni generiche. Il contenitore eredita un ACE solo-eredità che contiene le informazioni generiche e un ACE solo-effettivo in cui le informazioni generiche sono state mappate.
Un ACE specifico dell'oggetto dispone di un membro InheritedObjectType che può contenere un GUID per identificare il tipo di oggetto che può ereditare l'ace.
Se l'InheritedObjectType GUID non viene specificato, le regole di ereditarietà per un ACE specifico dell'oggetto sono uguali a quella di un ACE standard.
Se viene specificato InheritedObjectType GUID, l'ACE è ereditabile dagli oggetti che corrispondono al GUID quando OBJECT_INHERIT_ACE è impostato, e dai contenitori che corrispondono al GUID quando CONTAINER_INHERIT_ACE è impostato. Si noti che attualmente solo gli oggetti DS supportano gli ACL specifici dell'oggetto e DS considera tutti i tipi di oggetto come contenitori.