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


SECURITY_DESCRIPTOR_CONTROL

Тип SECURITY_DESCRIPTOR_CONTROL — это набор битовых флагов, определяющих значение структуры SECURITY_DESCRIPTOR или ее компонентов. Каждый дескриптор безопасности имеет элемент control , в котором хранятся SECURITY_DESCRIPTOR_CONTROL битов.

typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

Значение элемента управления может включать сочетание следующих SECURITY_DESCRIPTOR_CONTROL битовых флагов:

Значение Значение
SE_OWNER_DEFAULTED (0x0001) Механизм по умолчанию, а не исходный поставщик дескриптора безопасности, предоставляет идентификатор безопасности владельца (SID) дескриптора безопасности. Чтобы задать этот флаг, используйте RtlSetOwnerSecurityDescriptor.
SE_GROUP_DEFAULTED (0x0002) Механизм по умолчанию, а не исходный поставщик дескриптора безопасности, предоставляет идентификатор безопасности группы дескриптора безопасности.
SE_DACL_PRESENT (0x0004) Указывает дескриптор безопасности с daCL. Если этот флаг не задан или если этот флаг установлен и daCL имеет значение NULL, дескриптор безопасности разрешает полный доступ всем. Этот флаг используется для хранения сведений о безопасности, указанных вызывающим объектом, до тех пор, пока дескриптор безопасности не будет связан с защищаемым объектом. После того как дескриптор безопасности связан с защищаемым объектом, в элементе управления дескриптором безопасности всегда устанавливается флаг SE_DACL_PRESENT. Чтобы задать этот флаг, используйте RtlSetDaclSecurityDescriptor.
SE_DACL_DEFAULTED (0x0008) Указывает дескриптор безопасности с daCL по умолчанию. Например, если создатель объекта не указывает DACL, объект получает список DACL по умолчанию из маркера доступа создателя. Этот флаг может повлиять на то, как система обрабатывает DACL в отношении наследования ACE. Система игнорирует этот флаг, если флаг SE_DACL_PRESENT не установлен. Этот флаг используется для определения того, как вычисляется окончательный daCL объекта и не хранится физически в элементе управления дескриптором безопасности защищаемого объекта. Чтобы задать этот флаг, используйте RtlSetDaclSecurityDescriptor.
SE_SACL_PRESENT (0x0010) Указывает дескриптор безопасности с saCL.
SE_SACL_DEFAULTED (0x0020) Механизм по умолчанию, а не исходный поставщик дескриптора безопасности, предоставляющий saCL. Этот флаг может повлиять на то, как система обрабатывает saCL в отношении наследования ACE. Система игнорирует этот флаг, если флаг SE_SACL_PRESENT не установлен.
SE_DACL_UNTRUSTED (0x0040) Указывает, что список управления доступом, на который указывает DACL дескриптора безопасности, был предоставлен ненадежным источником. Если этот флаг установлен и обнаружен составной ACE, система заменяет известные допустимые идентификаторы БЕЗОПАСНОСТИ сервера в ACE.
SE_SERVER_SECURITY (0x0080) Запрашивает поставщик для объекта, защищенного дескриптором безопасности, aCL которого должен быть серверным ACL на основе входного ACL, независимо от его источника (явного или по умолчанию). Это делается путем замены всех ACE GRANT на составные ACE, предоставляющие текущий сервер. Этот флаг имеет смысл только в том случае, если субъект олицетворение.
SE_DACL_AUTO_INHERIT_REQ (0x0100) Запрашивает, чтобы поставщик для объекта, защищенного дескриптором безопасности, автоматически распространял DACL на существующие дочерние объекты. Если поставщик поддерживает автоматическое наследование, он распространяет daCL на все существующие дочерние объекты и задает бит SE_DACL_AUTO_INHERITED в дескрипторах безопасности объекта и его дочерних объектов.
SE_SACL_AUTO_INHERIT_REQ (0x0200) Запрашивает, чтобы поставщик для объекта, защищенного дескриптором безопасности, автоматически распространял saCL на существующие дочерние объекты. Если поставщик поддерживает автоматическое наследование, он распространяет saCL на все существующие дочерние объекты и задает бит SE_SACL_AUTO_INHERITED в дескрипторах безопасности объекта и его дочерних объектов.
SE_DACL_AUTO_INHERITED (0x0400) Начиная с Windows 2000, указывает дескриптор безопасности, в котором DACL поддерживает автоматическое распространение наследуемых ACE на существующие дочерние объекты. Для списков управления доступом Windows 2000, поддерживающих автоматическое наследовательство, этот бит всегда устанавливается. Он используется для отличия этих списков управления доступом от списков управления доступом Windows NT 4.0, которые не поддерживают автоматическое наследовательство. Этот бит не задан в дескрипторов безопасности для Windows NT 4.0 и более ранних версий, которые не поддерживают автоматическое распространение наследуемых ACE.
SE_SACL_AUTO_INHERITED (0x0800) Указывает дескриптор безопасности, в котором SACL поддерживает автоматическое распространение наследуемых ACE на существующие дочерние объекты. Этот бит устанавливается только в том случае, если для объекта и его существующих дочерних объектов выполнен алгоритм автоматического наследования. Этот бит не задан в дескрипторов безопасности для Windows NT 4.0 и более ранних версий, которые не поддерживали автоматическое распространение наследуемых ACE.
SE_DACL_PROTECTED (0x1000) Защищает DACL дескриптора безопасности от изменения наследуемыми ACE.
SE_SACL_PROTECTED (0x2000) Защищает saCL дескриптора безопасности от изменения наследуемыми ACE.
SE_RM_CONTROL_VALID (0x4000) Указывает, что биты диспетчера элементов управления ресурсами в дескрипторе безопасности допустимы. Биты элемента управления Resource Manager — это восемь битов в элементе Sbz1структуры SECURITY_DESCRIPTOR, содержащей сведения, относящиеся к Resource Manager доступа к структуре. Дополнительные сведения см. в разделе Windows SDK.
SE_SELF_RELATIVE (0x8000) Указывает дескриптор безопасности в само относительном формате со всеми сведениями о безопасности в непрерывном блоке памяти. Если этот флаг не установлен, дескриптор безопасности имеет абсолютный формат. Дополнительные сведения см. в документации по Windows SDK.

Требования

ntifs.h (включая ntifs.h)

ACE

ACL

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

SECURITY_DESCRIPTOR