Раздаем пользователям права на запуск и остановку служб Windows | Windows для системных администраторов

Управление правами на службы Windows

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

Предположим, нам нужно предоставить доменной учетной записи contoso\tuser права на перезапуск службы печати (Print Spooler) с системным именем Spooler.

Простого и удобного встроенного инструмента для управления разрешениями служб в Windows нет. Мы рассмотрим несколько способ предоставления пользователю прав на службу:

Какой из них проще и удобнее – решать Вам

Стандартная утилита SC.exe (Service controller)


Стандартный, встроенный в Windows способ управления правами на службы системы предусматривает использование утилиты sc.exe (Service Controller)

Примечание. Пример использования sc.exe для ручного удаления службы в Windows

Главная, проблема – зубодробительный синтаксис формата предоставления прав на сервис (формат SDDL). К примеру, права пользователю могут быть предоставлены следующей конструкцией:

sc sdset Spooler "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2133228432-2794320136-1823075350-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

В общем, такая команда способна надолго лишить веру в человечность у любого системного администратора. Не будем подробно рассматривать этот метод раздачи прав на службы (тем кто нужно, сам раскопает). Отметим лишь, что с команда sc sdshow – позволяет отобразить текущие разрешения на сервис, а sc sdset – изменить дескриптор безопасности сервиса.

SubInACL – утилита Руссиновича


Гораздо проще воспользоваться консольной утилитой SubInACL Марка Руссиновича (права на которую вместе с автором теперь принадлежат Microsoft). Синтаксис этой утилиты гораздо проще и удобнее для восприятия. Как предоставить права перезапуска на службу с помощью SubInACL:

  1. Скачайте msi со страницы (https://www.microsoft.com/en-us/download/details.aspx?id=23510) и установите ее на целевой системе.SubInACL - управление правами служб
  2. В командной строке с правами администратора перейдем в каталог с утилитой: cd “ C:\Program Files (x86)\Windows Resource Kits\Tools\)
  3. Выполним команду: subinacl.exe /service Spooler /grant=contoso\tuser=PTO subinacl.exe /service
    Примечание. В данном случае мы дали пользователю права на приостановку (Pause/Continue), запуск (Start) и остановку (Stop) службы. Полный список доступных разрешений:F : Full Control
    R : Generic Read
    W : Generic Write
    X : Generic eXecute
    L : Read controL
    Q : Query Service Configuration
    S : Query Service Status
    E : Enumerate Dependent Services
    C : Service Change Configuration
    T : Start Service
    O : Stop Service
    P : Pause/Continue Service
    I : Interrogate Service
    U : Service User-Defined Control Commands

    Если нужно предоставить права на удаленной машине, синтаксис будет такой:
    subinacl /SERVICE \\msk-buh01\spooler /grant=contoso\tuser=F

  4. Осталось войти в данную систему под учеткой пользователя и попробовать перезапустить службу командами:
    net stop spooler
    net start spooler

Если вы все сделали верно, служба должна остановиться и запуститься заново.

Шаблон безопасности (Security Template)

Более наглядный (но и требующий большего количества действий) графический способ управления правами на службы – с помощью шаблонов безопасности. Для реализации, откройте консоль mmc.exe и добавьте оснастку Security Templates.

mmc оснастка Security TemplatesСоздадим новый шаблон (New Template).

Новый шаблон безопасностиЗадайте имя нового шаблона и перейдите в раздел System Services. В списке служб выберите свою службу Print Spooler и откройте ее свойства.

Установите тип запуска (Automatic) и нажмите кнопку Edit Security.

Свойства службыС помощью кнопки Add добавьте учетную запись пользователя или группы, которым нужно предоставить права. В нашем случае, нам достаточно права Start, Stop and pause.

Разрешения службыСохраните шаблон (Save).

Примечание. Содержимое шаблона безопасности сохраняется в inf файле в каталоге C:\Users\username\Documents\Security\Templates

Если открыть этот файл, можно увидеть, что данные о правах доступа сохраняются в уже ранее упомянутом SDDL формате. Полученная таким образом строка может быть использована в качестве аргументы команды sc.exe.

[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Service General Setting]
"Spooler",2,"D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;RPWPDTRC;;;S-1-5-21-3243688314-1354026805-3292651841-1127)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

inf файл шаблона безопасностиОсталось с помощью оснастки Security Configuration and Analysis создать новую базу данных (Open Database) и импортировать наш шаблон безопасности из файла Spooler User Rights.inf.

Импорт шаблона безопасностиПрименим шаблон, вызвав из контекстного меню команду Configure Computer Now.

Configure Computer NowПод пользователем проверьте, что у него появились права на управление службой Spoller.

Управление правами служб через групповые политики

В том случае, если нужно раздать пользователям права запуска/остановки сервиса на множестве компьютеров, проще всего воспользоваться возможностями групповых политик (GPO).

  1. Создайте новую или отредактируйте существующую GPO, назначьте ее на нужный контейнер с компьютерами в Active Directory. Перейдите в раздел политик Computer configuration -> Windows Settings -> Security Settings -> System Services.Групповая политика управления службами
  2. Найдите службу Spooler и аналогично ранее рассмотренной методике предоставьте права пользователю. Сохраните изменения.
    Примечание. Ранее мы показывали, как с помощью аналогичной GPO можно скрыть от всех пользователей системы любую службу Windows.
  3. Осталось дождаться применения политик на клиентских компьютерах и проверить применение настроек прав службы.

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

Еще записи по теме: Windows Server 2012 R2
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.25MB/0.00109 sec