Существует служба Windows, которую иногда переустанавливают.
Мне нужен пользователь, чтобы иметь возможность запускать / останавливать / перезапускать эту службу. Этот пользователь не является администратором и не должен им быть.
Если я использую setacl.exe
чем это работает, или даже я могу использовать sc sdset
, но после переустановки службы необходимо снова вызвать setacl, но процесс, переустанавливающий службу, не имеет прав на запуск setacl.
Есть ли способ предоставить конкретному пользователю право перезапустить службу с определенным именем или даже все службы, которые сохраняются после переустановки службы?
Если я могу дать пользователю некоторые общие разрешения для «управления службами», это тоже будет хорошо, но я не могу точно определить права, необходимые для этого (если я добавлю пользователя в группу администраторов, он сможет запустить / остановить службы, но, очевидно, может сделать гораздо больше).
Поскольку вы уже знаете о SetACL и о том, как использовать его, чтобы позволить пользователю управлять службой, вы можете просто использовать запланированные задачи для регулярного запуска SetACL.
Настройте задачу на повторение с интервалом, равным максимально допустимому времени, в течение которого пользователь не может управлять службой после переустановки.
Как вы говорите, это вроде хакерство;).
Другой вариант, как упоминает Адам, - использовать GPO для обеспечения соблюдения вашего ACL.
Для нестандартных служб Windows необходимо установить и запустить Консоль управления группой, на компьютере, где установлена служба. Затем сделайте следующее:
Разрешения на перезапуск службы довольно просты, и вы можете использовать Subinacl.exe / служба для назначения разрешений, например:
subinacl /service MyServiceName /GRANT=NTDOMAIN\BOB=STOPI
Полный список на support.microsoft.com.
Я думаю, что проблема в том, что когда MyServiceName удаляется, ACL удаляются вместе с ним. Вы можете обойти это, используя групповую политику или шаблоны безопасности, чтобы назначать разрешения для служб, которые могут существовать или не существовать.