запись контроль доступа
Запись управления доступом (ACE) описывает права доступа, связанные с определенным идентификатором безопасности (SID). ОС оценивает acEs для вычисления эффективного доступа, предоставленного определенной программе на основе своих учетных данных. Например, когда пользователь входит на компьютер, а затем выполняет программу, программа использует учетные данные, связанные с учетной записью конкретного пользователя.
Когда программа пытается открыть объект, Windows сравнивает учетные данные, связанные с программой, с элементами управления безопасностью, связанными с объектом. Затем монитор ссылок на безопасность использует сведения ACE для определения того, должна ли программа быть разрешена или запрещена доступ к данному объекту. Это ACE, определяющий поведение подсистемы безопасности.
На следующем рисунке показана запись управления доступом.
Подсистема безопасности использует несколько типов ACES, включая следующие типы. Элемент типа структуры ACE управляет интерпретацией ACE. Определенные типы:
ACCESS_ALLOWED_ACE_TYPE— этот тип указывает, что ACE указывает права доступа, предоставленные определенному идентификатору безопасности.
ACCESS_DENIED_ACE_TYPE указывает, что ACE указывает права доступа, которые должны быть отклонены определенному идентификатору безопасности.
SYSTEM_AUDIT_ACE_TYPE указывает, что ACE указывает поведение аудита.
SYSTEM_ALARM_ACE_TYPE указывает, что ACE указывает поведение тревоги.
ACCESS_ALLOWED_COMPOUND_ACE_TYPE указывает, что ACE привязан к конкретному серверу и сущности, которую он олицетворяет.
Типы ACCESS_XXX используются для управления программным доступом к объекту. Типы SYSTEM_XXX используются для управления поведением аудита и оповещения подсистемы безопасности при доступе к объекту. Фактическое поведение подсистемы безопасности вычисляется путем объединения сведений для некоторых или всех acES, связанных с объектом.
Драйвер может создать ACE ACCESS_ALLOWED_ACE_TYPE с помощью подпрограммы RtlAddAccessAllowedAce. Чтобы добавить другие типы записей ACE, записи драйверов должны создавать собственные функции, так как WDK не предоставляет другие подпрограммы поддержки.