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


запись управления доступом

Запись управления доступом (ACE) описывает права доступа, связанные с определенным идентификатором безопасности (SID). ОС оценивает ACE для вычисления эффективного доступа, предоставленного программе на основе её учетных данных. Например, когда пользователь входит на компьютер, а затем выполняет программу, программа использует учетные данные, связанные с учетной записью конкретного пользователя.

Когда программа пытается открыть объект, Windows сравнивает учетные данные, связанные с программой, с элементами управления безопасностью, связанными с объектом. Затем контроль безопасности использует сведения ACE для определения того, разрешить или запретить программе доступ к данному объекту. Это ACE, определяющий поведение подсистемы безопасности.

На следующем рисунке показан элемент управления доступом.

Схема, иллюстрирующая элемент управления доступом.

Подсистема безопасности использует несколько типов ACES, включая следующие типы. Элемент типа структуры ACE управляет интерпретацией ACE. Определенные типы:

  • ACCESS_ALLOWED_ACE_TYPE— этот тип указывает, что ACE указывает права доступа, предоставленные определенному идентификатору безопасности.

  • ACCESS_DENIED_ACE_TYPE указывает, что ACE определяет права доступа, которые должны быть отказаны конкретному идентификатору безопасности (SID).

  • SYSTEM_AUDIT_ACE_TYPE указывает, что ACE указывает поведение аудита.

  • SYSTEM_ALARM_ACE_TYPE указывает, что ACE указывает поведение тревоги.

  • ACCESS_ALLOWED_COMPOUND_ACE_TYPE указывает, что ACE привязан к конкретному серверу и сущности, которую он олицетворяет.

Типы ACCESS_XXX используются для управления программным доступом к объекту. Типы SYSTEM_XXX используются для управления поведением аудита и оповещения подсистемы безопасности при доступе к объекту. Фактическое поведение подсистемы безопасности вычисляется путем объединения информации для некоторых или всех ACE, связанных с объектом.

Драйвер может создать ACE типа ACCESS_ALLOWED_ACE_TYPE с помощью подпрограммы RtlAddAccessAllowedAce. Чтобы добавить другие типы записей ACE, разработчики драйверов должны создавать собственные функции, так как WDK не предоставляет других поддерживающих подпрограмм.