Шаг 91 - Что такое ACE и ACL?

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;

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 23.06.2001