RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


microsoft:server:subinacl

SubInACL: Разрешить пользователю управлять сервисами Windows

Появилась задача разрешить учётной записи (группа Users или Power Users) перезапускать определённую службу Windows.

Как это можно сделать How to grant users rights to manage services по мнению Microsoft

  • Group Policy
  • Security Templates
  • Консольная утилита SubInACL (сейчас этот пункт убрали, но можно посмотреть в web archive).

Или же GUI вариант Service Security Editor. Это, как говорят англичане, "easy peasy lemon squeezy".

Последние два варианта и рассмотрим, как требующие минимальных усилий.

SubInACL

Описание утилиты доступно на сайте ss64.com.

На сайте Microsoft ссылка на скачивание уже недоступна.

Поэтому скачиваем с rtfm.wiki или из web archive.

Файл Размер SHA256 SHA1
subinacl.zip msi 370 KB, zip 134 KB 56d0678ba79303f141c2962babba53dfb87205467284e35047cc13ffa720f6c6 3199b43ca6ee8cb44b4e07e2b67e9f93b31a846b
Скачать по ссылке из web archive

Установка

SubInACL 1

SubInACL 2

SubInACL 3

Пример. Разрешаем пользователю dx все операции (старт/стоп) для сервиса windows_exporter на хосте с именем rtfm-dev

subinacl /service "windows_exporter" /GRANT=rtfm-dev\dx=STOPI

Пояснение

🔑 🔤
S S TOPI Query Service Status
T S T OPI Start Service
O ST O PI Stop Service
P STO P I Pause/Continue Service
I STOP I Interrogate Service

Информация с сайта Microsoft в разделе Method 3: Use Subinacl.exe

Смысл Interrogate Service мне до конца непонятен, но советуют его добавлять.

Нашёл упоминание на сайте Microsoft, что немного проясняет ситуацию

Sending INTERROGATE to a service causes the service to update its status with the Service Control Manager.

Пример вывода

sc \\rtfm-dev interrogate "windows_exporter"
 
SERVICE_NAME: windows_exporter
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

Чтобы убрать права к службе используем REVOKE

subinacl /service "windows_exporter" /REVOKE=rtfm-dev\dx=

Помимо GRANT и REVOKE есть также DENY.

Командную строку необходимо запустить от имени администратора иначе subinacl не сможет внести изменения

SeSecurityPrivilege : Access is denied.

WARNING :Unable to set SeSecurityPrivilege privilege. This privilege may be required.
Error OpenSCManager : Access is denied.

WARNING : /grant=rtfm-dev\dx=stopi : No previous object opened

Рекомендую тренироваться в тестовой среде т.к. что-то сломать с помощью subinacl довольно легко.

Как перезапустить сервис

SC, NET, PsService, WMIC, PowerShell, GUI

1. SC (service control)

sc start windows_exporter
sc stop windows_exporter

2. NET

Старт

C:\>net start windows_exporter
The Windows Exporter service is starting.
The Windows Exporter service was started successfully.

Стоп

C:\>net stop windows_exporter
The Windows Exporter service is stopping.
The Windows Exporter service was stopped successfully.

Рестарт

C:\>net stop windows_exporter && net start windows_exporter
The Windows Exporter service is stopping.
The Windows Exporter service was stopped successfully.
 
The Windows Exporter service is starting.
The Windows Exporter service was started successfully.

3. PsService

psservice \\rtfm-dev restart windows_exporter

4. WMIC

wmic service windows_exporter call StartService
wmic service windows_exporter call StopService

5. PowerShell

PS C:\> Start-Service -Name windows_exporter -Verbose
VERBOSE: Performing the operation "Start-Service" on target "Windows Exporter (windows_exporter)".
PS C:\> Stop-Service -Name windows_exporter -Verbose
VERBOSE: Performing the operation "Stop-Service" on target "Windows Exporter (windows_exporter)".
PS C:\> Restart-Service -Name windows_exporter -Verbose
VERBOSE: Performing the operation "Restart-Service" on target "Windows Exporter (windows_exporter)".

6. GUI (service.msc)

Тут всё понятно.

Service Security Editor

Программа доступна для свободного скачивания на сайте coretechnologies.com

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

ServiceEditor1

ServiceEditor2

ServiceEditor3

Ссылки

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
microsoft/server/subinacl.txt · Последнее изменение: 2023/09/08 14:40 — dx