ACE - access control entry запись управления доступом. Определяет способ взаимодействия SID с защищаемым объектом. Может разрешать или запрещать доступ для определенного SID. Каждая структура ACE содержит SID и набор масок содержащий права доступа для этого SID.
Структур ACE много, но структура у них похожа. Типы структур следующие:
ACCESS_ALLOWED_ACE указывает пользователей или группы, которым доступ разрешен:
typedef struct_ACCESS_ALLOWED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_ALLOWED_ACE;
ACCESS_DENIED_ACE указывает пользователей или группы, которым запрещен доступ к объектам.
typedef struct _ACCESS_DENIED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_DENIED_ACE;
SYSTEM_AUDIT_ACE указывает пользователей или группы генерирующие события безопасности.
typedef struct _SYSTEM_AUDIT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_AUDIT_ACE;
ACCESS_ALLOWED_OBJECT_ACE Запись в Active Directory подобна структуре ACCESS_ALLOWED_ACE.
typedef struct _ACCESS_ALLOWED_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;
ACCESS_DENIED_OBJECT_ACE Запись в Active Directory подобна структуре ACCESS_DENIED_ACE:
typedef struct _ACCESS_DENIED_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;
SYSTEM_AUDIT_OBJECT_ACE Запись в Active Directory подобна структуре SYSTEM_AUDIT_ACE:
typedef struct _SYSTEM_ALARM_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } SYSTEM_ALARM_OBJECT_ACE, *PSYSTEM_ALARM_OBJECT_ACE;
ACL access control list список управления доступом. Это массив записей ACE. От нуля и больше. Эта структура определена вот так:
typedef struct _ACL { BYTE AclRevision; BYTE Sbz1; WORD AclSize; WORD AceCount; WORD Sbz2; } ACL; typedef ACL *PACL;