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


SECURITY_DESCRIPTOR_CONTROL

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

typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

Комментарии

Чтобы получить биты элементов управления дескриптора безопасности, вызовите функцию GetSecurityDescriptorControl . Чтобы задать биты элементов управления дескриптора безопасности, используйте функции для изменения дескрипторов безопасности. Список этих функций см. в разделе См. также.

Приложения могут использовать функцию SetSecurityDescriptorControl для задания битов элементов управления, связанных с автоматическим наследованием ACE.

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

Значение Значение
SE_DACL_AUTO_INHERIT_REQ
0x0100
Указывает обязательный дескриптор безопасности , в котором настраивается список управления доступом на уровне пользователей (DACL) для поддержки автоматического распространения наследуемых записей управления доступом (ACE) в существующие дочерние объекты.
Для списков управления доступом (ACL), поддерживающих автоматическое наследование, этот бит всегда устанавливается. Защищенные серверы могут вызывать функцию ConvertToAutoInheritPrivateObjectSecurity для преобразования дескриптора безопасности и установки этого флага.
SE_DACL_AUTO_INHERITED
0x0400
Указывает дескриптор безопасности, в котором настраивается список управления доступом (DACL) для поддержки автоматического распространения наследуемых записей управления доступом (ACE) в существующие дочерние объекты.
Для списков управления доступом (ACL), поддерживающих автоматическое наследование, этот бит всегда устанавливается. Защищенные серверы могут вызывать функцию ConvertToAutoInheritPrivateObjectSecurity для преобразования дескриптора безопасности и установки этого флага.
SE_DACL_DEFAULTED
0x0008
Указывает дескриптор безопасности с daCL по умолчанию. Например, если создатель объекта не указывает DACL, объект получает dacl по умолчанию из маркера доступа создателя. Этот флаг может повлиять на то, как система обрабатывает DACL в отношении наследования ACE. Система игнорирует этот флаг, если флаг SE_DACL_PRESENT не установлен.
Этот флаг используется для определения способа вычисления окончательного daCL объекта и не сохраняется физически в элементе управления дескриптором безопасности защищаемого объекта.
Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorDacl .
SE_DACL_PRESENT
0x0004
Указывает дескриптор безопасности с dacl. Если этот флаг не задан или если этот флаг установлен и daCL имеет значение NULL, дескриптор безопасности разрешает полный доступ всем пользователям.
Этот флаг используется для хранения сведений о безопасности, указанных вызывающим объектом, пока дескриптор безопасности не будет связан с защищаемым объектом. После связывания дескриптора безопасности с защищаемым объектом в элементе управления дескриптором безопасности всегда устанавливается флаг SE_DACL_PRESENT.
Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorDacl .
SE_DACL_PROTECTED
0x1000
Предотвращает изменение DACL дескриптора безопасности с помощью наследуемых ACE. Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorControl .
SE_GROUP_DEFAULTED
0x0002
Указывает, что идентификатор безопасности (SID) группы дескрипторов безопасности был предоставлен механизмом по умолчанию. Этот флаг может использоваться диспетчером ресурсов для идентификации объектов, группа дескрипторов безопасности которых была задана механизмом по умолчанию. Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorGroup .
SE_OWNER_DEFAULTED
0x0001
Указывает, что идентификатор безопасности владельца дескриптора безопасности был предоставлен механизмом по умолчанию. Этот флаг может использоваться диспетчером ресурсов для идентификации объектов, владелец которых был задан механизмом по умолчанию. Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorOwner .
SE_RM_CONTROL_VALID
0x4000
Указывает, что элемент управления Resource Manager является допустимым.
SE_SACL_AUTO_INHERIT_REQ
0x0200
Указывает обязательный дескриптор безопасности, в котором системный список управления доступом (SACL) настроен для поддержки автоматического распространения наследуемых ACE на существующие дочерние объекты.
Система задает этот бит, когда выполняет алгоритм автоматического наследования для объекта и его существующих дочерних объектов. Чтобы преобразовать дескриптор безопасности и установить этот флаг, защищенные серверы могут вызвать функцию ConvertToAutoInheritPrivateObjectSecurity .
SE_SACL_AUTO_INHERITED
0x0800
Указывает дескриптор безопасности, в котором настроен системный список управления доступом (SACL) для поддержки автоматического распространения наследуемых ACE на существующие дочерние объекты.
Система задает этот бит, когда выполняет алгоритм автоматического наследования для объекта и его существующих дочерних объектов. Чтобы преобразовать дескриптор безопасности и установить этот флаг, защищенные серверы могут вызвать функцию ConvertToAutoInheritPrivateObjectSecurity .
SE_SACL_DEFAULTED
0x0008
Механизм по умолчанию, а не исходный поставщик дескриптора безопасности, предоставляет saCL. Этот флаг может повлиять на то, как система обрабатывает saCL в отношении наследования ACE. Система игнорирует этот флаг, если флаг SE_SACL_PRESENT не установлен. Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorSacl .
SE_SACL_PRESENT
0x0010
Указывает дескриптор безопасности с saCL. Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorSacl .
SE_SACL_PROTECTED
0x2000
Предотвращает изменение списка SACL дескриптора безопасности с помощью наследуемых ACE. Чтобы задать этот флаг, используйте функцию SetSecurityDescriptorControl .
SE_SELF_RELATIVE
0x8000
Указывает самостоятельный дескриптор безопасности. Если этот флаг не задан, дескриптор безопасности имеет абсолютный формат. Дополнительные сведения см. в разделе Абсолютные и Self-Relative дескрипторы безопасности.

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Winnt.h (включая Windows.h)

См. также раздел

Низкоуровневые контроль доступа

Базовые структуры контроль доступа

ConvertToAutoInheritPrivateObjectSecurity

GetSecurityDescriptorControl

GetSecurityDescriptorDacl

GetSecurityDescriptorGroup

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

SetSecurityDescriptorControl

SetSecurityDescriptorDacl

SetSecurityDescriptorGroup

SetSecurityDescriptorOwner

SetSecurityDescriptorSacl