- How to grant users rights to manage services
- Summary
- Method 1: Use Group Policy
- Method 2: Use Security Templates
- Method 3: Use Subinacl.exe
- Automating Multiple Changes
- Предоставление пользователям прав на управление службами
- Аннотация
- Метод 1. Использование групповой политики
- Метод 2. Использование шаблонов безопасности
- Метод 3. Использование Subinacl.exe
- Автоматизация нескольких изменений
- Как предоставить обычным пользователям права на запуск/остановку служб Windows?
- Управление правами на службы с помощью встроенной утилиты SC.exe (Service controller)
- Предоставление прав на перезапуск службы с помощью SubInACL
- Process Explorer: Установка разрешений на службу
- Назначаем разрешения на службу с помощью PowerShell
- Используем шаблоны безопасности (Security Templates) для управления разрешениями служб
- Управление правами служб через групповые политики
How to grant users rights to manage services
This article describes how to grant users rights to manage services.
Original product version: В Windows Server 2003
Original KB number: В 325349
Summary
This article describes how to grant users the authority to manage system services in Windows Server 2003.
By default, only members of the Administrators group can start, stop, pause, resume, or restart a service. This article describes methods that you can use to grant the appropriate rights to users to manage services.
Method 1: Use Group Policy
You can use Group Policy to change permissions on system services. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
324802 HOW TO: Configure Group Policies to Set Security for System Services in Windows Server 2003
Method 2: Use Security Templates
To use security templates to change permissions on system services, create a security template following these steps:
Click Start, click Run, type mmc in the Open box, and then click OK.
On the File menu, click Add/Remove Snap-in.
Click Add, click Security Configuration and Analysis, click Add, click Close, and then click OK.
In the console tree, right-click Security Configuration and Analysis, and then click Open Database.
Specify a name and location for the database, and then click Open.
In the Import Template dialog box that appears, click the security template that you want to import, and then click Open.
In the console tree, right-click Security Configuration and Analysis, and then click Analyze Computer Now.
In the Perform Analysis dialog box that appears, accept the default path for the log file that is displayed in the Error log file path box or specify the location that you want, and then click OK.
After the analysis is complete, configure the service permissions as follows:
- In the console tree, click System Services.
- In the right pane, double-click the service whose permissions you want to change.
- Click to select the Define this policy in the database check box, and then click Edit Security.
- To configure permissions for a new user or group, click Add. In the Select Users, Computers, or Groups dialog box, type the name of the user or group that you want to set permissions for, and then click OK.
- In the Permissions for User or Group list, configure the permissions that you want for the user or group. When you add a new user or group, the Allow check box next to the Start, stop and pause permission is selected by default. This setting permits the user or group to start, stop, and pause the service.
- Click OK two times.
To apply the new security settings to the local computer, right-click Security Configuration and Analysis, and then click Configure Computer Now.
You can use also the Secedit command-line tool to configure and analyze system security. For more information about Secedit, click Start , and then click Run . Type cmd in the Open box, and then click OK . At the command prompt, type secedit /? , and then press ENTER. Note that when you use this method to apply settings, all the settings in the template are reapplied, and this may override other previously configured file, registry, or service permissions.
Method 3: Use Subinacl.exe
The final method for assigning rights to manage services involves the use of the Subinacl.exe utility from the Windows 2000 Resource Kit. The syntax is as follows:
SUBINACL /SERVICE \\MachineName\ServiceName /GRANT=[DomainName]UserName[=Access]
The user who runs this command must have administrator rights for it to complete successfully.
If MachineName is omitted, the local machine is assumed.
If DomainName is omitted, the local machine is searched for the account.
Although the syntax example indicates a user name, this will work for user groups too.
The values that Access can take are as follows:
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
If Access is omitted, «F (Full Control)» is assumed.
Subinacl supports similar functionality in relation to files, folders, and registry keys. For more information, see the Windows 2000 Resource Kit.
Automating Multiple Changes
With Subinacl, there is no option that you can specify that will set the required access for all services on a particular computer. However, the following sample script demonstrates one way that Method 3 can be extended to automate the task:
Save the script as a .vbs file, such as «Services.vbs,» and call it as follows:
CSRIPT Services.vbs DomainName ComputerName UserName Access
Comment out or remove the line ‘Wscript.Echo . ‘ if no feedback is required.
This sample does no error checking; therefore, use it carefully.
Предоставление пользователям прав на управление службами
В этой статье описано, как предоставить пользователям права на управление службами.
Исходная версия продукта: Windows Server 2003
Исходный номер КБ: 325349
Аннотация
В этой статье описывается, как предоставить пользователям полномочия по управлению системные службы в Windows Server 2003.
По умолчанию запуск, остановка, приостановка, возобновление или перезапуск службы могут только члены группы администраторов. В этой статье описываются методы, которые можно использовать для предоставления пользователям соответствующих прав на управление службами.
Метод 1. Использование групповой политики
Для изменения разрешений системных служб можно использовать групповую политику. Для получения дополнительных сведений щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
324802 HOW TO: Configure Group Policies to Set Security for System Services in Windows Server 2003
Метод 2. Использование шаблонов безопасности
Чтобы использовать шаблоны безопасности для изменения разрешений для системных служб, создайте шаблон безопасности, вы можете сделать следующее:
Нажмите кнопку «Начните», нажмите кнопку«Выполнить», введите «MMC» в поле «Открыть» и нажмите кнопку «ОК».
В меню «Файл» выберите пункт «Добавить или удалить оснастку».
Нажмите кнопку «Добавить»,«Конфигурация безопасности и анализ», «Добавить»,«Закрыть» и «ОК».
В дереве консоли щелкните правой кнопкой мыши «Конфигурация безопасности и анализ» и выберите «Открыть базу данных».
Укажите имя и расположение базы данных и нажмите кнопку «Открыть».
В открываемом диалоговом окне «Импорт шаблона» выберите шаблон безопасности, который нужно импортировать, и нажмите кнопку «Открыть».
В дереве консоли щелкните правой кнопкой мыши «Конфигурация безопасности и анализ» и выберите «Анализ компьютера».
В отображаемом диалоговом окне «Выполнение анализа» примите путь по умолчанию для файла журнала, отображаемого в поле пути к файлу журнала ошибок, или укажите нужное расположение и нажмите кнопку «ОК».
После завершения анализа настройте разрешения служб следующим образом:
- В дереве консоли щелкните «Системные службы».
- В правой области дважды щелкните службу, разрешения которой нужно изменить.
- Щелкните, чтобы выбрать политику «Определить эту политику» в поле «База данных», а затем нажмите кнопку «Изменить безопасность».
- Чтобы настроить разрешения для нового пользователя или группы, нажмите кнопку «Добавить». В диалоговом окне «Выбор пользователей, компьютеров или групп» введите имя пользователя или группы, для которого необходимо установить разрешения, а затем нажмите кнопку «ОК».
- В списке «Разрешения для пользователей или групп» настройте разрешения, которые нужны пользователю или группе. При добавлении нового пользователя или группы по умолчанию выбирается разрешение «Разрешить» рядом с разрешением «Начните», «Остановить» и «Приостановить». Этот параметр позволяет пользователю или группе запустить, остановить и приостановить службу.
- Два раза нажмите кнопку ОК .
Чтобы применить новые параметры безопасности к локальному компьютеру, щелкните правой кнопкой мыши «Конфигурация безопасности и анализ» и выберите «Настроить компьютер».
Вы также можете использовать средство командной строки Secedit для настройки и анализа безопасности системы. Для получения дополнительных сведений о Secedit нажмите кнопку «Начните» и выберите «Выполнить». Введите cmd в поле «Открыть» и нажмите кнопку «ОК». В командной подсказке введите secedit /? и нажмите ввод. Обратите внимание, что при использовании этого метода для применения параметров все параметры в шаблоне повторно применяются, и это может переопределять другие ранее настроенные разрешения файлов, реестра или служб.
Метод 3. Использование Subinacl.exe
Последний метод назначения прав на управление службами включает использование Subinacl.exe из комплекта ресурсов Windows 2000. Используется следующий синтаксис:
SUBINACL /SERVICE \ \MachineName\ServiceName /GRANT=[DomainName ] UserName[=Access]
Пользователь, который выполняет эту команду, должен иметь права администратора для успешного выполнения этой команды.
Если имя компьютера опущено, предполагается локальный компьютер.
Если domainName опущен, поиск учетной записи ведется на локальном компьютере.
Хотя в примере синтаксиса указано имя пользователя, это также будет работать и для групп пользователей.
Доступные для Access значения:
F : полный контроль
R : универсальное чтение
W : Generic Write
X : Generic eXecute
L : Read controL
Вопрос: конфигурация службы запросов
S : состояние службы запросов
E : Enumerate Dependent Services
C : конфигурация изменения службы
T : Запуск службы
O : Stop Service
P : Pause/Continue Service
I : Опрашиваемая служба
U : Service User-Defined Control Commands
Если Access опущен, предполагается, что имеется «F (полный доступ)».
Subinacl поддерживает аналогичные функции по отношению к файлам, папок и ключам реестра. Дополнительные сведения см. в комплекте ресурсов для Windows 2000.
Автоматизация нескольких изменений
С помощью Subinacl нельзя указать параметр, который будет устанавливать необходимый доступ для всех служб на определенном компьютере. Однако в следующем примере сценария демонстрируется один из способов расширения метода 3 для автоматизации задачи:
Сохраните сценарий в VBS-файле, например «Services.vbs», и вызовите его следующим образом:
CSRIPT Services.vbs DomainName ComputerName UserName Access
Закомментайте или удалите строку «Wscript.Echo. » если отзывы не требуются.
В этом примере не проверяется ошибка; Поэтому используйте его осторожно.
Как предоставить обычным пользователям права на запуск/остановку служб Windows?
По умолчанию обычные пользователи (без прав администратора) не могут управлять системными службами Windows. Это означает, что пользовали не могут остановить, запустить (перезапустить), изменить настройки и разрешения служб Windows. В этой статье мы разберем несколько способов управления правами на службы Windows. В частности, мы покажем, как предоставить обычному пользователю, без прав администратора Windows, права на запуск, остановку и перезапуск определенной службы.
Предположим, нам нужно предоставить доменной учетной записи contoso\tuser права на перезапуск службы печати (Print Spooler) с системным именем Spooler. При попытке перезапустить службу под пользователей появляется ошибка: System error 5 has occurred. Access is denied.
Простого и удобного встроенного инструмента для управления разрешениями на службы в Windows нет. Мы рассмотрим несколько способ предоставления пользователю прав на службу:
Какой из них проще и удобнее – решать Вам.
Управление правами на службы с помощью встроенной утилиты SC.exe (Service controller)
Стандартный, встроенный в Windows способ управления правами на службы системы предусматривает использование консольной утилиты sc.exe (Service Controller).
Главная, проблема – зубодробительный синтаксис формата предоставления прав на сервис (используется формат SDDL — Security Description Definition Language).
Получить текущие разрешения на службу в виде SDDL строки можно так:
sc.exe sdshow Spooler
Что значат все эти символы?
Первая буква после скобок означает: разрешить (A, Allow) или запретить (D, Deny).
Следующая пачка символов – назначаемые права.
Последние 2 буквы — объекты (группа пользователей или SID), котором нужно назначить права. Есть список предустановленных групп.
AO Account operators
RU Alias to allow previous Windows 2000
AN Anonymous logon
AU Authenticated users
BA Built-in administrators
BG Built-in guests
BO Backup operators
BU Built-in users
CA Certificate server administrators
CG Creator group
CO Creator owner
DA Domain administrators
DC Domain computers
DD Domain controllers
DG Domain guests
DU Domain users
EA Enterprise administrators
ED Enterprise domain controllers
WD Everyone
PA Group Policy administrators
IU Interactively logged-on user
LA Local administrator
LG Local guest
LS Local service account
SY Local system
NU Network logon user
NO Network configuration operators
NS Network service account
PO Printer operators
PS Personal self
PU Power users
RS RAS servers group
RD Terminal server users
RE Replicator
RC Restricted code
SA Schema administrators
SO Server operators
SU Service logon user
Можно вместо предустановленной группы явно указать пользователя или группу по SID. Получить SID пользователя для текущего пользователя можно с помощью команды:
или для любого пользователя домена с помощью PowerShell комаднлета Get-ADUser:
Get-ADUser -Identity ‘iipeshkov’ | select SID
SID доменной группы можно получить с помощью командлета Get-ADGroup:
Чтобы назначить SDDL строку с правами на определённую службу, используется команда sc sdset. К примеру, права пользователю на службу spooler могут быть предоставлены следующей командой:
sc sdset Spooler «D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2133228432-2794320136-1823075350-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)»
Предоставление прав на перезапуск службы с помощью SubInACL
Для управления правами служб Windows гораздо проще воспользоваться консольной утилитой SubInACL из комплекта Sysinternals от Марка Руссиновича (права на которую вместе с автором теперь принадлежат Microsoft). Синтаксис этой утилиты гораздо проще и удобнее для восприятия. Рассмотрим, как предоставить права перезапуск службы с помощью SubInACL:
- Скачайте subibacl,msi со страницы (https://www.microsoft.com/en-us/download/details.aspx?id=23510) и установите ее на целевой системе;
- В командной строке с правами администратора перейдите в каталог с утилитой: cd “C:\Program Files (x86)\Windows Resource Kits\Tools\ ”
- Выполните команду: subinacl.exe /service Spooler /grant=contoso\tuser=PTO
Если вы все сделали верно, служба должна перезапуститься.
subinacl.exe /service Spooler /revoke=contoso\tuser
Process Explorer: Установка разрешений на службу
Достаточно просто изменить разрешения на службу с помощью еще одной утилиты Sysinternals — Process Explorer. Запустите Process Explorer с правами администратора и найдите в списке процессов процесс нужной вам службы. В нашем примере это spoolsv.exe (диспетчер очереди печати — C:\Windows\System32\spoolsv.exe). Откройте свойства процесса и перейдите на вкладку Services.
Нажмите на кнопку Permissions и в открывшемся окне добавьте пользователя или группу, которой нужно предоставить права на сервис и выберите уровень полномочий (Full Control/Write/Read).
Назначаем разрешения на службу с помощью PowerShell
В галерее TechNet имеется отдельный неофициальный модуль PowerShell для управления разрешениями на разные объекты Windows — PowerShellAccessControl Module (скачать его можно здесь). Этот модуль позволяет управлять правами на службы. Импортируйте модуль в свою PS сессию:
Получить эффективные разрешения на конкретную службу из PowerShell можно так:
Get-Service spooler | Get-EffectiveAccess -Principal corp\tuser
Чтобы предоставить обычному пользователю права на запуск и остановку службы, выполните:
Get-Service spooler | Add-AccessControlEntry -ServiceAccessRights Start,Stop -Principal corp\tuser
Используем шаблоны безопасности (Security Templates) для управления разрешениями служб
Более наглядный (но и требующий большего количества действий) графический способ управления правами на службы – с помощью шаблонов безопасности. Для реализации, откройте консоль mmc.exe и добавьте оснастку Security Templates.
Создадим новый шаблон (New Template).
Задайте имя нового шаблона и перейдите в раздел System Services. В списке служб выберите свою службу Print Spooler и откройте ее свойства.
Установите тип запуска (Automatic) и нажмите кнопку Edit Security.
С помощью кнопки Add добавьте учетную запись пользователя или группы, которым нужно предоставить права. В нашем случае, нам достаточно права Start, Stop and pause.
Сохраните шаблон (Save).
Если открыть этот файл, можно увидеть, что данные о правах доступа сохраняются в уже упомянутом ранее SDDL формате. Полученная таким образом строка может быть использована в качестве аргументы команды sc.exe.
Осталось с помощью оснастки Security Configuration and Analysis создать новую базу данных (Open Database) и импортировать новый шаблон безопасности из файла Spooler User Rights.inf.
Примените шаблон, вызвав из контекстного меню команду Configure Computer Now.
Теперь можно под пользователем проверить, что у него появились права на управление службой Print Spooler.
Управление правами служб через групповые политики
Если нужно раздать пользователям права запуска/остановки сервиса сразу на множестве северов или компьютерах домена, проще всего воспользоваться возможностями групповых политик (GPO).
- Создайте новую или отредактируйте существующую GPO, назначьте ее на нужный контейнер с компьютерами в Active Directory. Перейдите в раздел политик Computer configuration -> Windows Settings -> Security Settings -> System Services;
- Найдите службу Spooler и аналогично методике с шаблонами безопасности, рассмотренной ранее, предоставьте права пользователю. Сохраните изменения;
Настройки безопасности для все служб, для которых вы изменили разрешения по-умолчанию хранятся в собственной ветке реестра HKLM\System\CurrentControlSet\Services\ \Security в параметре Security типа REG_BINARY.
Это означает, что одним из способов установки аналогичных разрешений на других компьютерах может быть экспорт/импорт данного параметра реестра (в том числе через GPO).
Итак, мы разобрали несколько способов управления правами на службы Windows, позволяющих предоставить произвольному пользователю любые права на системные службы. Если пользователю требуется удаленный доступ к службе, без предоставления ему прав локального входа в систему, нужно разрешить пользователю удаленно опрашивать Service Control Manager.