Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах


Глава 6. Службы Windows Vista. 6.1. Основные сведения о службах - Хранение сведений о службе в реестре, окончание
Дата: 12 сентября 2009, суббота

Новые сайты:
  • http://myname.co.ua - Узнай все о своем имени и фамилии. На сайте будет собрано описание множества имен и фамилий (сайт находится на стадии наполнения). Кроме того, на сайте можно будет найти Святцы. Также сайт содержит статьи об именах, фамилиях и отчествах людей. Зарегистрированные пользователи могут добавлять страницы сайта в Избранное.
  • mypsihotest.testsbox.ru - сайт содержит множество психологических тестов для всех. Кстати, вы можете быстро, совершенно бесплатно и без всяких усилий создать такой же сайт. Подробнее на странице http://www.agava.ru/partners/create_site/tests.cgi.
  • abcjob.jlt.ru - сайт может помочь вам трудоустроиться на работу в России и Украине. Кстати, вы можете быстро, совершенно бесплатно и без всяких усилий создать такой же сайт. Подробнее на странице http://www.agava.ru/partners/create_site/ifolder.cgi?project=joblist.
  • abcbuy.vsemp.ru - Интернет-магазин, продающий множество интересного и полезного. Кстати, вы можете быстро, совершенно бесплатно и без всяких усилий создать такой же сайт. Подробнее на странице http://www.agava.ru/partners/create_site/vsem.cgi.
  • abcfiles.ifolder.ru - файловый хостинг (сайт для хранения ваших файлов). Кстати, вы можете быстро, совершенно бесплатно и без всяких усилий создать такой же сайт. Подробнее на странице http://www.agava.ru/partners/create_site/ifolder.cgi.
Новое на сайте gal.co.ua:Новое на сайте myname.co.ua:

У нас на сайте произошли некоторые изменения. Теперь поиск на странице http://www.onestyle.com.ua/o.php выполняется с помощью поисковой системы Яндекс. И происходит только среди проиндексированных страниц нашего сайта.

Стандартный поиск по всему сайту по-прежнему доступен с помощью поля поиска в правом верхнем углу каждой страницы сайта.

В конец записи

Права и учетная запись службы

Каждая служба должна обладать определенными правами, достаточными для того, чтобы она могла выполнять назначенные ей действия. Основным способом назначения таких прав является определение учетной записи, от имени которой будет работать служба. Существует три стандартных учетных записи, которые могут использоваться службой.

  • УЧЕТНАЯ ЗАПИСЬ ЛОКАЛЬНОЙ СИСТЕМЫ. Данная учетная запись принадлежит к администраторам компьютера.

    Настройки учетной записи локальной системы хранятся в ветви реестра HKEY_USERS\.DEFAULT, а ее профиль — в каталоге %systemdrive%\Users\Default.

  • УЧЕТНАЯ ЗАПИСЬ СЕТЕВОЙ СЛУЖБЫ. Данная учетная запись аналогична учетной записи обычного пользователя и имеет право взаимодействия с сетью.

    Настройки учетной записи сетевой службы хранятся в ветви реестра HKEY_USERS\S-1-5-20, а ее профиль — в каталоге %systemroot%\ServiceProfiles\NetworkService.

  • УЧЕТНАЯ ЗАПИСЬ ЛОКАЛЬНОЙ СЛУЖБЫ. Данная учетная запись аналогична учетной записи обычного пользователя и не имеет права взаимодействия с сетью (может работать с сетью только при помощи нулевых сеансов).

    Настройки учетной записи локальной службы хранятся в ветви реестра HKEY_USERS\S-1-5-19, а ее профиль — в каталоге %systemroot%\ServiceProfiles\LocalService.

Если в предыдущих операционных системах семейства Windows эти учетные записи (в особенности учетная запись локальной системы), обладали всеми правами, независимо от того, нужны они им или нет, то в операционной системе Windows Vista права учетных записей служб были ограничены. В связи с этим появился новый стандартный параметр реестра, который позволяет определить дополнительные права работы служб — RequiredPrivileges.

Также были ограничены и объекты файловой системы (файлы, каталоги), к которым имеют доступ службы. Появилось такое понятие, как SID службы. SID службы уникально идентифицирует службу и используется для предоставления службе прав доступа к определенному объекту файловой системы компьютера.

Таблица 6.04. Параметры ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\«имя службы»

  • ObjectName. Имеет строковый тип. Определяет учетную запись пользователя, от имени которого будет запускаться служба.
  • Параметр может принимать следующие значения: LocalSystem (локальная система), NT Authority\NetworkService (сетевая служба), NT AUTHORITY\LocalService (локальная служба), .\«логин пользователя» (от имени данного пользователя).
  • RequiredPrivileges. Имеет тип MULTI_SZ. Определяет дополнительные привилегии, предоставляемые службе.
  • ServiceSidType. Имеет тип DWORD. Определят тип используемого службой SID и может принимать следующие значения: 1 (неограниченный SID), 3 (ограниченный SID).
  • Security. Имеет тип BINARY. Содержит дескриптор защиты службы (права взаимодействия пользователей со службой).

Взаимодействие с рабочим столом

По умолчанию служба не имеет права взаимодействия с рабочим столом пользователя. То есть, она не может отображать свои окна и диалоги (кроме диалогового сообщения со специальными параметрами). Однако существует возможность предоставления такого права службам, работающим с правами локальной системы. Как было сказано в представленной выше таблице, для этого достаточно присвоить значение 0x100 к значению параметра Type.

Службы, имеющие право взаимодействия с рабочим столом пользователя, называются интерактивными.

Вы можете запретить доступ к рабочему столу пользователя для интерактивных служб. Для этого достаточно параметру DWORD-типа NoInteractiveServices присвоить значение 1. Данный параметр находится в ветви реестра HKLM\SYSTEM\CurrentControlSet\Control\Windows.

Неудачный запуск службы

Существует два типа ошибок, поведение при возникновении которых можно настроить. Это ошибки, возникающие во время запуска службы (и приводящие к невозможности запуска службы), и ошибки, возникающие в процессе ее работы.

Поведение при возникновении первого типа ошибок определяется при помощи параметра ErrorControl. Остальные же параметры приведенной ниже таблицы определяют поведение при возникновении ошибок второго типа.

Таблица 6.05. Параметры ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\«имя службы»

  • *ErrorControl. Определяет действие, выполняемое при возникновении ошибки во время запуска службы.
  • Параметр может принимать следующие значения: 0 (игнорировать), 1 (предупредить пользователя, создав запись в журнале), 2 (выполнить перезагрузку и запуск при помощи последней удачной конфигурации), 3 (выполнить перезагрузку и запуск при помощи последней удачной конфигурации; если это не помогает — отобразить экран BSOD).
  • **FailureActions. Определяет действия, выполняемые при сбое в работе службы.
  • RebootMessage. Содержит сообщение, посылаемое администратору при возникновении сбоя в работе службы.
  • FailureCommand. Содержит команду, выполняемую при возникновении сбоя в работе службы.
  • *FailureActionsOnNonCrashFailures. Если значение данного параметра равно 1, тогда действия, выполняемые при сбое в работе службы, также будут применяться и при возникновении ошибок во время ее остановки.

*данный параметр имеет тип REG_DWORD

**Данный параметр имеет тип REG_BINARY

Общий процесс svchost

Существует два типа реализации службы — либо как отдельный запускаемый файл, либо как часть одного из стандартных общих процессов операционной системы. Например, процесса svchost.exe, вторым названием которого является «универсальный процесс».

Подробнее о процессе svchost.exe можно прочитать в разделе «Что такое svchost.exe?», который имеет CLSID-номер 057580a1-7002-4f43-9240-a74f42cb05c9.

Общий процесс представляет собой процесс, внутри которого работают сразу несколько запущенных служб. Это позволяет снизить количество ресурсов, требуемых службам для работы, однако также снижает и отказоустойчивость операционной системы. Ведь достаточно возникнуть ошибке в работе одной из служб общего процесса, как будут аварийно завершены все службы, работающие в этом общем процессе.

Однако подобие иерархии служб остается и в процессе svchost.exe. Если вы посмотрите список задач, выполняемых в операционной системе (рис. *), тогда, скорее всего, увидите сразу несколько запущенных процессов svchost.exe. Каждый такой процесс содержит в себе службы определенного типа. Во-первых, это позволяет в какой-то степени повысить отказоустойчивость операционной системы. А во-вторых, это позволяет более точно ограничить права служб, работающих в общем процессе svchost.exe (заметьте, что различные экземпляры процесса svchost.exe запущены от имени разных учетных записей пользователей).

Но как же операционная система узнает тип службы, которая работает в общем процессе? Как правило, при помощи значения параметра ImagePath. Для служб, работающих в общем процессе svchost.exe, значение этого параметра имеет вид svchost.exe -k «тип службы». Также типы служб общего процесса svchost.exe, и службы, которые в них входят, можно определить при помощи параметров MULTI_SZ-типа ветви HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost. Название этих параметров определяет тип службы, а значение — список служб, которые в него входят.

Также обратите внимание на подразделы ветви реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost. Эти подразделы также названы в честь типов служб, и хранят в себе настройки работы служб, соответствующих данным типам. Параметры, которые могут находиться в данных ветвях реестра, представлены ниже в таблице (все они имеют тип DWORD).

Таблица 6.06. Ветвь HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost\«тип службы»

  • DefaultRpcStackSize. Определяет размер стека RPC (в килобайтах), используемого данным типом служб
  • *CoInitializeSecurityAppID. Содержит в себе CLSID-номер безопасности (находится в ветви реестра HKCR\AppID), используемый данным типом служб

*данный параметр имеет строковый тип

Продолжение следует

Рейтинг: 0 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=646

В избранное