Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Структура SECURITY_DESCRIPTOR хранит в себе информацию, связанную с защитой некоторого объекта от несанкционированного доступа. В этой структуре, которую называют дескриптором безопасности, содержится информация о том, какие пользователи обладают правом доступа к объекту и какие действия эти пользователи могут выполнить в отношении этого объекта.
Дескриптор безопасности объекта хранит в себе следующую информацию;
- SID (security identifier) владельца объекта;
- SID основной группы владельца объекта;
- список разграничительного контроля доступа (Discretionary Access Control List, DACL-дискреционный список управления доступом);
- системный список управления доступом (System Access Control List, SACL);
- управляющая информация (например, сведения о том, как списки ACL передают информацию дочерним дескрипторам безопасности);
Список DACL определяет, кто обладает (и кто не обладает) правом доступах объекту. Список SACL определяет, информация о каких действиях вносится в файл журнала.
Функция InitializeSecurityDescriptor инициализирует указанный вами дескриптор таким образом, что в нем отсутствует DASL, SACL, владелец и основная группа владельца, а все управляющие флаги установлены в значение FALSE, При этом дескриптор имеет абсолютный формат. Что это значит? Дескриптор в абсолютном (absolute) формате содержит лишь указатели на информацию, связанную с защитой объекта. В отличие от этого дескриптор в относительном (self-relative) формате включает в себя всю необходимую информацию, которая располагается в памяти последовательно поле за полем. Таким образом, абсолютный дескриптор нельзя записать на диск (так как при последующем чтении его с диска все указатели потеряют смысл), а относительный дескриптор — можно.
Windows позволяет преобразовывать абсолютный дескриптор в относительную форму и обратно. Обычно это требуется лишь в случае, если вы записываете дескриптор на диск и считываете дескриптор с диска. Системные вызовы, требующие передачи указателя на дескриптор безопасности, работают только с дескрипторами в абсолютном формате.
Преобразование осуществляется при помощи вызовов MakeSelfRelativeSD и MakeAbsoluteSD. Преобразовать абсолютную форму в относительную несложно. Однако обратное преобразование (из относительной в абсолютную) обычно выполняется в несколько этапов.
Функции SetSecurityDescriptorOwner и SetSecurityDescriptorGroup связывают SID с дескрипторами безопасности. Списки ACL инициализируются с помощью функции InitializeAcl и затем связываются с дескриптором безопасности функциями SetSecurityDescriptorDacl или SetSecurityDescriptorSacl.
Дата публикования: 2015-11-01; Прочитано: 799 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!