Настройка прав безопасности для конкретной службы
Потребовалось дать права конкретному пользователю на конкретную службу на сервере
Нашу проблему решает стандартная командочка sc.exe синтаксис её можно посмотреть тут.
К примеру нам необходимо дать права Стоп/Старт/Рестарт пользователю User1 на службу «Центр обновления Windows» wuauserv
Наши действия будут следующими
1. Получаем DACL необходимой службы (описание)
sc sdshow wuauserv
D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
2. Получаем SID необходимого пользователя . К примеру, чтобы получить SID доменного пользователя из powershell будет примерно так
Import-Module ActiveDirectory
Get-ADUser User1
В воде будет присутствовать нечто похожее на
SID : S-1-5-21-3518686197-980969203-4063076585-5967
3. Строим ACE_string для нашего пользователя (Security Descriptor Definition Language, ACE Strings)
(A;;RPWPDT;;;S-1-5-21-3518686197-980969203-4063076585-5967)
Строится оно по следующему принципу (как описано здесь)
AceType;AceFlags;Rights;ObjectGuid;InheritObjectGuid;AccountSid;(ConditionalExpression)
AceType:
A — Allow
D — Deny
AceFlags,Rights описаны здесь
ObjectGuid описание можно взять тут
ACE strings for services:
CC SERVICE_QUERY_CONFIG
DC SERVICE_CHANGE_CONFIG
LC SERVICE_QUERY_STATUS
SW SERVICE_ENUMERATE_DEPENDENTS
RP SERVICE_START
WP SERVICE_STOP
DT SERVICE_PAUSE_CONTINUE
LO SERVICE_INTERROGATE
CR SERVICE_USER_DEFINED_CONTROL
SD _DELETE
RC READ_CONTROL
WD WRITE_DAC
WO WRITE_OWNER
Ну и в качестве AccountSid — SID нашего пользователя
Итак, получили наш ACE (A;;RPWPDT;;;S-1-5-21-3518686197-980969203-4063076585-5967)
Объединяем с тем, что мы получили в пункте 1
D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)(A;;RPWPDT;;;S-1-5-21-3518686197-980969203-4063076585-5967)
Важно! не допустить пробелов и переносов строки
4. Применяем то, что получили к нашей службе командной sc sdset
sc sdset wuauserv D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)(A;;RPWPDT;;;S-1-5-21-3518686197-980969203-4063076585-5967)
Вуаля 🙂