среда, 23 ноября 2016 г.

разрешить юзерам управлять службой

Поставили тута ынтерпрайс-софт, глючный как всё ынтерпрайсное. Для того, чтобы оно работало, надо периодически перезапускать службу, поставляемую с этим софтом. Решено было отдать это право самим юзерам, которые были добавлены в локальную группу megausers.
Решение конечно есть и описано на сайте microsoft, здесь просто конкретные готовые команды.

Самым простым показалось решение с SubInACL:

SUBINACL /SERVICE "Mega Service" /GRANT=megausers=TOP

TOP - это комбинация прав доступа
   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 "Mega Service" /display
 
Отобрать права: 
 
SUBINACL /SERVICE "Mega Service" /REVOKE=megausers
 

На форумах пишут, что SubInACL не всегда работает и предлагают альтернативу - SetACL


SetACL -on "MegaService" -ot srv -actn ace -ace "n:megausers;p:start_stop"


посмотреть:


SetACL -on "MegaService" -ot srv -acnt list

отобрать (не пробовал, но вроде так должно быть):

SetACL -on "MegaService" -ot srv -actn trustee -trst "n1:megausers;ta:remtrst"