Herencia de control de acceso

Las entradas de control de acceso (ACL) de una lista de control de acceso de objetos (ACL) pueden pertenecer a una de estas dos categorías:

  • ACL efectiva: los ACL de esta categoría se aplican al objeto .
  • Heredar ACL: los ACL de esta categoría los heredan los objetos creados en el contenedor.

Cada ACE de la DACL puede pertenecer a una o varias categorías. Las categorías para las que pertenece una ACE están determinadas por las marcas de control de herencia establecidas en la ACE.

Se pueden establecer tres marcas de control de herencia en la propiedad AceFlags de una ACE.

Bandera Descripción
ADS_ACEFLAG_INHERIT_ACE Esta marca indica que la ACE forma parte de la ACL heredada y que los objetos secundarios heredan las marcas de control de herencia de esta ACE.
ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE Esta marca indica que la ACE forma parte de la ACL heredada, pero que no se propagan marcas de control de herencia a objetos secundarios directos (descendientes directos) y la ACE es efectiva en los objetos secundarios directos.
ADS_ACEFLAG_INHERIT_ONLY_ACE Esta marca indica que la ACE no forma parte de la ACL efectiva. Si no se establece esta marca, la ACE forma parte de la ACL efectiva. Esta marca es útil para establecer permisos que los subobjetos heredan, pero no afectan a la accesibilidad del contenedor. Por ejemplo, si un ACE está diseñado para ser heredado por objetos de usuario en una unidad organizativa, es probable que no se aplique para el acceso a la propia unidad organizativa.

Las marcas ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE y ADS_ACEFLAG_INHERIT_ONLY_ACE solo son significativas si ADS_ACEFLAG_INHERIT_ACE está presente. Esto se debe a que la marca ADS_ACEFLAG_INHERIT_ACE agrega el comportamiento de herencia a una ACE heredable, pero no define el tipo de herencia. Las marcas ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE y ADS_ACEFLAG_INHERIT_ONLY_ACE definen un tipo específico de comportamiento de herencia.

Es importante recordar que el sistema también establece las marcas siguientes en función del tipo y el estado de la ACE.

Bandera Descripción
ADS_ACEFLAG_INHERITED_ACE Esta marca indica que se heredó la ACE.
ADS_ACEFLAG_VALID_INHERIT_FLAGS Esta marca indica que las marcas heredadas son válidas.

En la tabla siguiente se enumeran los efectos de las diferentes combinaciones de marcas para la AceFlags propiedad de una ACE.

Bandera Efecto en el objeto que contiene la ACE Efecto en objetos secundarios directos Efecto en los objetos siguientes elementos secundarios directos
No hay marcas establecidas. ACE efectiva: ACE se aplica al objeto . ACE no se hereda. ACE no se hereda.
ADS_ACEFLAG_INHERIT_ACE ACE efectiva La ACE se hereda. ACE es una ACE eficaz.
La ACE se hereda. ACE es una ACE eficaz.
| ADS_ACEFLAG_INHERIT_ACEADS_ACEFLAG_INHERIT_ONLY_ACE No una ACE efectiva: ACE no se aplica al objeto . La ACE se hereda. ACE es una ACE eficaz.
La ACE se hereda. ACE es una ACE eficaz.
| ADS_ACEFLAG_INHERIT_ACEADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE ACE efectiva ACE se hereda pero sin marcas de herencia. ACE es una ACE eficaz
ACE no se hereda.
| ADS_ACEFLAG_INHERIT_ACE | ADS_ACEFLAG_INHERIT_ONLY_ACEADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE No es una ACE efectiva. ACE se hereda pero sin marcas de herencia. ACE es una ACE eficaz.
ACE no se hereda.