Защита реестра. Иерархическая структура реестра Windows NT. Управление системой через реестр. Основные кусты реестра, страница 3

Мы уже говорили, что реестр строится в оперативной памяти при загрузке системы WindowsNT. При этом на основании информации, содержащейся в файлах папки \winnt_root\System32\Contig, для каждого раздела и подраздела создается отдельный объект. Доступ к этим объектам контролируется операционной системой так же, как и доступ к любым другим объектам. Кроме данных, хранящихся в соответствующем разделе или подразделе, у каждого такого объекта имеется свой отдельный список прав доступа (Access Control List, ACL), который определяет, какие разрешения (permissions) пользователи и группы будут иметь при доступе к параметрам данного раздела и, соответственно, какие действия с этими параметрами они могут выполнять. Сюда также можно поместить записи, которые задают режим регистрации действий, выполнявшиеся с соответствующим разделом реестра (auditing). И, наконец, у каждого раздела реестра есть владелец (owner). Как и в случае файлов и папок на диске с NTFS, владельцем может быть либо конкретный пользователь компьютера или домена, либо группа Administrators, если раздел создан пользователем, членом данной группы. Кроме того, в качестве владельца (например, раздела HKEY_LOCAL_MACHINE\SAM\SAM) может выступать и операционная система (Owner: SYSTEM).

Еще раз отметим, что объекты реестра в оперативной памяти создаются для разделов и подразделов, но не для отдельных параметров. Именно поэтому в отличие от NTFS (где разрешения можно установить и для папок, и, отдельно, для файлов, находящихся в них) при работе с реестром Windows NT разрешения назначаются только на уровне раздела. Они распространяются на все параметры, которые находятся в соответствующем разделе. Отдельные разрешения на доступ к тому или иному параметру раздела установить нельзя, однако для подразделов можно установить собственные разрешения.

Разрешения на доступ к разделам реестра

Как уже говорилось, разрешения на доступ к тому или иному разделу реестра (т.е. для модификации дискреционного списка прав доступа) обычно изменяются с помощью программы REGEDT32. Установив в ней в качестве текущего нужный раздел, выберите затем в меню Security команду Permissions, и на экране появится диалоговое окно со списком прав доступа к данному разделу (рис. 6-4). В качестве иллюстрации ниже показан ACL для раздела HKEY_LOCAL_MACHINE\SAM\SAM (т.е. для базы данных диспетчера учетных записей). Видно, что по умолчанию члены группы Administrators могут только просматривать и модифицировать список прав доступа к этому разделу.

Рис. 6-4. Диалоговое окно установки прав доступа к разделу реестра в программе REGEDT32.

Окно RegistryKeyPermissionsсильно напоминает окно управления списком прав доступа к папке или файлу на диске с файловой системой NTFS. Разрешения на доступ к разделу, которые можно дать пользователю или группе, в этом окне обозначены как Read, FullControl и SpecialAccess(однако разрешения No Access, как в случае NTFS, нет). Выбор в меню команды SpecialAccessвызывает одноименное диалоговое окно (рис. 6-4), где можно выборочно установить нужные права доступа к соответствующему разделу. Список этих прав и их краткое описание приведены в таблице.

Право доступа...

Дает возможность...

QueryValue (Q)

...прочесть значения параметров раздела, а также узнать время последнего изменения параметров раздела.

SetValue (S)

...записать в раздел новые параметры и изменить значения уже существующих.

CreateSubkey (С)

...создать подраздел в данном разделе.

EnumerateSubkeys (E)

...просмотреть список подразделов.

Notify(N)

...получить оповещение об изменениях в данном разделе.

CreateLink (L)

...создать в разделе символическую ссылку (symbolic link) на другой раздел.

Delete (D)

...удалить данный раздел целиком и/или отдельные его параметры.

WriteDAC (W)

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

WriteOwner (О)

...стать владельцем раздела.

ReadControl (R)

...просмотреть информацию о разрешениях на доступ к разделу.