Назад | Перейти на главную страницу

Win2008: SC SDSET - как предоставить конкретному локальному пользователю права на остановку и запуск определенной локальной службы?

Где можно найти полезный справочник по команде sdset?

Я умею читать и читать, и мне еще предстоит найти простой список шагов, чтобы сказать:

Сервис: приложение
Пользователь: Джо

Предоставить Джо запуск / остановку / перезагрузку приложения

(Почему это не может быть так просто?)

Заметка: Неправильная установка sdset может привести к тому, что служба исчезнет из Service Manager и будет видна только пользователю root / system (невидима для администраторов!). Очень важно понять это правильно.

Не уверен, что вам все еще нужна помощь. Я давно этим не занимался. Мы отказались от практики делегирования управления службами и просто сделали нескольких владельцев приложений местными администраторами.

Ты можешь использовать Subinacl чтобы изменить разрешения службы:

subinacl /service SERVICE_NAME /grant=DOMAIN\GROUP=F

Используйте истинное имя службы (обычно без пробелов), а не отображаемое имя (обычно с пробелами)

Команда SC работает только для удаленного управления службой, если она имеет ПОЛНОЕ управление службой. Все права, которые можно делегировать, перечислены ниже.

  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

Существует также один временной шаг, позволяющий управлять службами удаленно, если сервер 2003 SP1 или новее: SP1 изменил ACL по умолчанию в диспетчере управления службами. Удаленное использование services.msc не работает с версией ACL SP1. Измените ACL, чтобы разрешить удаленный запуск службы и остановить с помощью следующей команды. Здесь он заключен в оболочку, но должен вводиться одной командой: sc sdset SCMANAGER D: (A ;; CCLCRPRC ;;; AU) (A ;; CCLCRPWPRC ;;; SY) (A ;; KA ;;; BA) S: (AU; FA; KA ;;; WD) (AU; OIIOFA; GA ;;; WD)

Дополнительная информация об изменении ACL 2003 SP1 и откуда этот SDDL http://support.microsoft.com/?id=907460

Исправление, если subinacl выдает ошибку 1783 http://support.microsoft.com/kb/827209

Возможно, вам понадобится другой SDDL SCMANAGER для серверов 2008 R1 / R2.

Кто-то объяснил это во всей красе здесь:

http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx

По сути, вы можете получить SID участника безопасности, используя что-то вроде Sysinternals PSGETSID, и собрать строку SDDL, которая будет использоваться с sc sdset.

Если вас беспокоит, что все идет не так, вам следует экспортировать резервную копию раздела реестра:

HKLM\SYSTEM\CurrentControlSet\services\<service>