Поделиться через


Правила наследования ACE

Система распространяет наследуемые записи управления доступом (ACE) на дочерние объекты в соответствии с набором правил наследования. Система помещает унаследованные ACE в дискреционный список управления доступом (DACL) дочернего элемента в соответствии с предпочитаемым порядком ACE в DACL. Система устанавливает флаг INHERITED_ACE во всех унаследованных ACE.

ACE, наследуемые контейнерами и неконтейнерными дочерними объектами, различаются в зависимости от сочетаний флагов наследования. Эти правила наследования работают одинаково как для списков DACCl, так и для списков управления доступом к системе (SACCL).

Флаг родительского ACE Влияние на дочерний список ACL
Только OBJECT_INHERIT_ACE Неконтейнерные дочерние объекты: наследуется как действующий ACE. Дочерние объекты контейнера. Контейнеры наследуют только наследующий ACE, если не установлен флаг бита NO_PROPAGATE_INHERIT_ACE.
Только CONTAINER_INHERIT_ACE Неконтейнерные дочерние объекты: не влияет на дочерний объект. Дочерние объекты контейнера. Дочерний объект наследует действующий ACE. Наследуемое свойство ACE наследуется, если также не установлен флаг бита NO_PROPAGATE_INHERIT_ACE.
CONTAINER_INHERIT_ACE и OBJECT_INHERIT_ACE Неконтейнерные дочерние объекты: наследуется как действующий ACE. Дочерние объекты контейнера. Дочерний объект наследует действующий ACE. Наследуемое свойство ACE наследуется, если также не установлен флаг бита NO_PROPAGATE_INHERIT_ACE.
Флаги наследования не заданы Не влияет на дочерние контейнеры или неконтейнерные объекты.

Если наследуемое ACE является эффективным ACE для дочернего объекта, система сопоставляет все универсальные права с конкретными правами для дочернего объекта. Аналогичным образом система сопоставляет универсальные идентификаторы безопасности (SID), такие как CREATOR_OWNER, с соответствующим идентификатором безопасности. Если наследуемый ACE является только наследуемым ACE, все универсальные права или универсальные идентификаторы БЕЗОПАСНОСТИ остаются без изменений, чтобы их можно было сопоставить соответствующим образом при наследовании ACE следующим поколением дочерних объектов.

В случае, когда объект контейнера наследует ACE, который действует в контейнере и наследуется его потомками, контейнер может наследовать два ACE. Это происходит, если наследуемое ACE содержит общие сведения. Контейнер наследует ACE только наследуемого типа, содержащий общие сведения, и действующий ACE, в котором были сопоставлены общие сведения.

Объект ACE имеет элемент InheritedObjectType , который может содержать GUID для идентификации типа объекта, который может наследовать ACE.

Если GUID InheritedObjectType не указан, правила наследования для объекта ACE будут теми же, что и для стандартного ACE.

Если указан GUID InheritedObjectType , ACE наследуется объектами, которые соответствуют GUID, если задан OBJECT_INHERIT_ACE, и контейнерами, которые соответствуют GUID, если задан CONTAINER_INHERIT_ACE. Обратите внимание, что в настоящее время только объекты DS поддерживают ACE для конкретных объектов, а ds обрабатывает все типы объектов как контейнеры.