Безопасность раздела реестра и права доступа
Модель безопасности Windows позволяет управлять доступом к разделам реестра. Дополнительные сведения о безопасности см. в разделе Модель управления доступом.
Дескриптор безопасности для раздела реестра можно указать при вызове функции RegCreateKeyEx или RegSetKeySecurity. Если указать значение NULL, ключ получает дескриптор безопасности по умолчанию. Списки управления доступом в дескрипторе безопасности по умолчанию для ключа наследуются от его прямого родительского ключа.
Чтобы получить дескриптор безопасности раздела реестра, вызовите функцию RegGetKeySecurity, GetNamedSecurityInfo или GetSecurityInfo .
Допустимые права доступа для разделов реестра включают стандартные права доступа DELETE, READ_CONTROL, WRITE_DAC и WRITE_OWNER. Разделы реестра не поддерживают стандартное право доступа SYNCHRONIZE.
В следующей таблице перечислены конкретные права доступа для объектов разделов реестра.
Значение | Значение |
---|---|
KEY_ALL_ACCESS (0xF003F) |
Объединяет права доступа STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY и KEY_CREATE_LINK. |
KEY_CREATE_LINK (0x0020) |
Зарезервировано для системного использования. |
KEY_CREATE_SUB_KEY (0x0004) |
Требуется для создания подраздела раздела реестра. |
KEY_ENUMERATE_SUB_KEYS (0x0008) |
Требуется для перечисления подразделов раздела реестра. |
KEY_EXECUTE (0x20019) |
Эквивалентно KEY_READ. |
KEY_NOTIFY (0x0010) |
Требуется для запроса уведомлений об изменениях для раздела реестра или подразделов раздела реестра. |
KEY_QUERY_VALUE (0x0001) |
Требуется для запроса значений раздела реестра. |
KEY_READ (0x20019) |
Объединяет значения STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS и KEY_NOTIFY. |
KEY_SET_VALUE (0x0002) |
Требуется для создания, удаления или задания значения реестра. |
KEY_WOW64_32KEY (0x0200) |
Указывает, что приложение в 64-разрядной версии Windows должно работать в 32-разрядном представлении реестра. Этот флаг игнорируется 32-разрядной версией Windows. Дополнительные сведения см. в разделе Доступ к альтернативному представлению реестра. Этот флаг необходимо объединить с помощью оператора OR с другими флагами в этой таблице, которые запрашивают или получают доступ к значениям реестра. Windows 2000: Этот флаг не поддерживается. |
KEY_WOW64_64KEY (0x0100) |
Указывает, что приложение в 64-разрядной версии Windows должно работать в 64-разрядном представлении реестра. Этот флаг игнорируется 32-разрядной версией Windows. Дополнительные сведения см. в разделе Доступ к альтернативному представлению реестра. Этот флаг необходимо объединить с помощью оператора OR с другими флагами в этой таблице, которые запрашивают или получают доступ к значениям реестра. Windows 2000: Этот флаг не поддерживается. |
KEY_WRITE (0x20006) |
Объединяет права доступа STANDARD_RIGHTS_WRITE, KEY_SET_VALUE и KEY_CREATE_SUB_KEY. |
При вызове функции RegOpenKeyEx система проверяет запрошенные права доступа по дескриптолю безопасности ключа. Если у пользователя нет правильного доступа к разделу реестра, операция открытия завершится ошибкой. Если администратору требуется доступ к разделу, решение заключается в том, чтобы включить привилегию SE_TAKE_OWNERSHIP_NAME и открыть раздел реестра с WRITE_OWNER доступом. Дополнительные сведения см. в разделе Включение и отключение привилегий.
Вы можете запросить ACCESS_SYSTEM_SECURITY право доступа к разделу реестра, если хотите прочитать или записать системный список управления доступом ключа (SACL). Дополнительные сведения см. в разделах Списки управления доступом (ACL) и Права доступа saCL.
Чтобы просмотреть текущие права доступа к разделу, включая предопределенные ключи, используйте редактор реестра (Regedt32.exe). Перейдя к нужной клавише, перейдите в меню Правка и выберите Разрешения.