Структура ACL (winnt.h)

Структура ACL является заголовком списка управления доступом (ACL). Полный ACL состоит из структуры ACL , за которой следует упорядоченный список из нуля или нескольких записей управления доступом (ACE).

Синтаксис

typedef struct _ACL {
  BYTE AclRevision;
  BYTE Sbz1;
  WORD AclSize;
  WORD AceCount;
  WORD Sbz2;
} ACL;

Члены

AclRevision

Указывает уровень редакции ACL. Это значение должно быть ACL_REVISION, если ACL не содержит ACE для конкретного объекта. В этом случае это значение должно быть ACL_REVISION_DS. Все ACE в списке управления доступом должны находиться на одном уровне редакции.

Sbz1

Задает нулевой байт заполнения , который выравнивает элемент AclRevision по 16-разрядной границе.

AclSize

Задает размер списка ACL в байтах. Это значение включает структуру ACL , все ACE и потенциальную неиспользуемую память.

AceCount

Указывает количество ACE, хранящихся в списке ACL.

Sbz2

Задает два 0 байта заполнения , которые выравнивают структуру ACL по 32-разрядной границе.

Комментарии

ACL включает последовательный список из нуля или нескольких ACE. Отдельные ACE в списке ACL нумеруются от 0 до n, где n+1 — количество ACE в списке ACL. При редактировании ACL приложение ссылается на ACE в ACL по индексу ACE.

Существует два типа ACL: дискреционный и системный.

Список управления доступом на уровне пользователей (DACL) контролируется владельцем объекта или любым лицом, которому предоставлен доступ WRITE_DAC к объекту. Он указывает доступ конкретных пользователей и групп к объекту. Например, владелец файла может использовать DACL для управления тем, какие пользователи и группы могут и не могут иметь доступ к файлу.

Объект также может иметь связанные с ним сведения о безопасности системного уровня в виде списка управления доступом системы (SACL), управляемого системным администратором. SACL позволяет системным администраторам проводить аудит любых попыток получения доступа к объекту.

Список определенных в настоящее время структур ACE см. в разделе ACE.

Четвертая структура ACE, SYSTEM_ALARM_ACE, в настоящее время не поддерживается.

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

Каждая структура ACL и ACE начинается с границы DWORD .

Максимальный размер ACL, включая его ACL, составляет 64 КБ.

Требования

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

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

AddAce

DeleteAce

GetAclInformation

GetSecurityDescriptorDacl

GetSecurityDescriptorSacl

InitializeAcl

IsValidAcl

SetAclInformation

SetSecurityDescriptorDacl

SetSecurityDescriptorSacl