Убедитесь, что у вас есть права на запуск системных служб Windows 10
Обновлено: 21.11.2024
Любая операционная система Microsoft Windows имеет службы. Это небольшие программы, которые работают в фоновом режиме ОС, чтобы все работало. Они действительно важны для серверов, поскольку это означает, что программы могут работать в фоновом режиме без регистрации пользователя. На самом деле серверы Windows настроены так, чтобы повысить производительность фоновых служб, а не любого приложения, работающего на экране.
Всегда лучше всего входить в систему с наименьшим количеством привилегий на любом ПК, т. е. вы не должны входить на рабочий стол или сервер с полными правами администратора. Вы должны войти в систему как обычный пользователь и повышать права доступа к программам до уровня администратора только в случае крайней необходимости.
Некоторые системные администраторы могут хотеть легкой жизни и просто позволить всему «запускаться от имени администратора», поскольку это избавляет от многих проблем, особенно при использовании старого программного обеспечения. Очевидно, что это значительно расширяет вектор атаки на систему безопасности, поскольку любой пользователь, получивший доступ к машине, может делать на ней все, что захочет.
Однако одна из проблем при работе в качестве обычного пользователя заключается в том, что вам не разрешено останавливать или запускать службы Windows. То есть по замыслу вы бы не хотели, чтобы неадминистратор останавливал критически важную службу. Проблема заключается в том, что у вас есть учетная запись службы, работающая (как подсказывает надлежащая практика) в качестве скромного пользователя. Чтобы обойти это, вы можете дать учетной записи службы разрешение делать все, что вы хотите, с определенной службой, которую вы хотите. К сожалению, это немного сложнее, чем установка прав доступа к файлам. В этой статье объясняется, как этого добиться. Это относится ко всем версиям Windows, начиная с Windows 2000 и выше. Мои скриншоты взяты из Windows 8 Developer Preview.
Сценарий
На сервере в нашей сети установлено устаревшее, но критически важное программное обеспечение для телефонии. Службы работают под учетной записью службы с именем пользователя Svc-Phones. Учетная запись Svc-Phones также входит на сервер в интерактивном режиме, чтобы просматривать любые сообщения от приложения или останавливать и запускать службы в случае возникновения проблемы (избегая перезагрузки всего сервера). ИТ-менеджер хочет, чтобы учетная запись Svc-Phones была удалена из локальной группы администраторов, чтобы защитить сервер. Это означает, что нам нужно будет изменить разрешения безопасности для службы программы телефонии.
Шаг 1. Создайте консоль
Нам нужно открыть скрытую консольную оснастку
- Нажмите Пуск >Выполнить (или нажмите WIN + R) и введите «mmc.exe»
- При этом открывается пустая консоль управления Microsoft. Нажмите Файл >Добавить/удалить оснастку… (Ctrl+M) Прокрутите список доступных оснасток и выберите Настройка и анализ безопасности.
- Нажмите Добавить
- Далее выберите Шаблоны безопасности .
- Нажмите Добавить
- Нажмите ОК
Шаг 2. Создайте пустой шаблон безопасности
В Windows Server 2003 и более ранних версиях эти файлы можно хранить где угодно, но в более поздних версиях действуют более жесткие ограничения, поэтому мы будем создавать все файлы в папке D:\Securtiy\
- Нажмите правой кнопкой мыши Шаблоны безопасности в дереве консоли и выберите Новый путь поиска шаблонов…
- Перейдите к D:\Security или другому локальному пути и нажмите ОК
- Щелкните правой кнопкой мыши D:\Security в дереве консоли и выберите Новый шаблон… Дайте новому шаблону имя, например, Специальные службы. Неважно, что вы используете.
- Описание является необязательным, но может быть полезным, если вы хотите использовать его повторно.
- Нажмите "ОК", и вы увидите, что новый шаблон появится в консоли.
Эти шаблоны предназначены для блокировки серверов с помощью мастера настройки безопасности Windows, но мы используем их только для простого изменения разрешений
Шаг 3. Создайте базу данных безопасности
- Нажмите правой кнопкой мыши Конфигурация и анализ безопасности в дереве консоли и выберите Открыть базу данных…
- Перейдите к D:\Security или другому локальному пути и введите имя в поле Имя файла:, например, Безопасность
- Нажмите ОК. Будет создан файл Security.sdb, используемый для применения изменений.
- Появится окно Импорт шаблона. Перейдите к файлу D:\Security/Custom Services.inf и выберите Открыть. Это применяет шаблон со всеми локальными службами к базе данных
- Если вы получаете сообщение об ошибке "База данных, которую вы пытаетесь открыть, не существует". затем вам нужно выбрать другой путь, например, на локальном диске Щелкните правой кнопкой мыши Конфигурация и анализ безопасности в дереве консоли и выберите Анализ компьютера…
- Нажмите ОК, чтобы принять путь к файлу журнала по умолчанию.
- После этого вам будет представлено нечто похожее на Редактор групповой политики или Консоль локальной политики безопасности.
Шаг 4. Изменение разрешений службы
-
Дважды щелкните Системные службы.
- Прокрутите вниз, чтобы найти услугу, которую нужно изменить, например Факс
- Дважды щелкните сервис.
- Установите флажок Определить эту политику в базе данных:
- Нажмите кнопку Изменить безопасность…
- Нажмите Добавить
- Введите имя пользователя учетной записи службы, например. Svc-Phones и нажмите ОК .
- Выбрав учетную запись Svc-Phones, проверьте разрешения Разрешить для Запуск, остановка и приостановка
- Нажмите "ОК".
- Нажмите «ОК» в свойствах службы, чтобы вернуться к консоли. Вы заметите, что служба теперь имеет значок «x» и сообщение Исследовать в разделе Разрешение. столбец. Это связано с тем, что новые разрешения, которые мы выбрали, конфликтуют с тем, что есть на локальном компьютере.
Шаг 5. Примените новые разрешения безопасности
- Нажмите правой кнопкой мыши Конфигурация и анализ безопасности в дереве консоли и выберите Настроить компьютер…
- Нажмите ОК, чтобы принять путь к файлу журнала по умолчанию.
- Это применит новые настраиваемые разрешения к локальному компьютеру.
- Теперь вы можете протестировать его на сервере с учетной записью Svc-Phones и убедиться, что он работает
Вы можете видеть, что это довольно многословно только для настройки разрешений для службы. к счастью, вы можете сохранить все, и это можно будет быстро использовать повторно в будущем или как часть пакетного процесса на разных серверах. Если вы хотите изменить разрешения для службы Microsoft по умолчанию, вы можете использовать раздел «Безопасность» групповой политики для достижения тех же результатов
В этой статье описывается, как предоставить пользователям права на управление службами.
Применимо к: Windows Server 2003
Исходный номер базы знаний: 325349
Обзор
В этой статье описывается, как предоставить пользователям права на управление системными службами в Windows Server 2003.
По умолчанию только члены группы администраторов могут запускать, останавливать, приостанавливать, возобновлять или перезапускать службы. В этой статье описываются методы, которые можно использовать для предоставления пользователям соответствующих прав на управление службами.
Способ 1. Использование групповой политики
Вы можете использовать групповую политику для изменения разрешений для системных служб. Для получения дополнительной информации щелкните следующий номер статьи базы знаний Майкрософт:
324802 КАК: настроить групповые политики для установки безопасности для системных служб в Windows Server 2003
Способ 2. Использование шаблонов безопасности
Чтобы использовать шаблоны безопасности для изменения разрешений системных служб, создайте шаблон безопасности, выполнив следующие действия:
Нажмите "Пуск", выберите "Выполнить", введите mmc в поле "Открыть" и нажмите "ОК".
В меню "Файл" нажмите "Добавить/удалить оснастку".
Нажмите "Добавить", нажмите "Конфигурация и анализ безопасности", нажмите "Добавить", нажмите "Закрыть", а затем нажмите "ОК".
В дереве консоли щелкните правой кнопкой мыши Конфигурация и анализ безопасности, а затем выберите Открыть базу данных.
Укажите имя и расположение базы данных, а затем нажмите "Открыть".
В появившемся диалоговом окне «Импорт шаблона» выберите шаблон безопасности, который нужно импортировать, а затем нажмите «Открыть».
В дереве консоли щелкните правой кнопкой мыши Конфигурация и анализ безопасности, а затем выберите Анализировать компьютер сейчас.
В появившемся диалоговом окне "Выполнение анализа" примите путь по умолчанию для файла журнала, который отображается в поле "Путь к файлу журнала ошибок", или укажите нужное расположение, а затем нажмите "ОК".
После завершения анализа настройте разрешения службы следующим образом:
- В дереве консоли выберите Системные службы.
- На правой панели дважды щелкните службу, разрешения которой вы хотите изменить.
- Установите флажок Определить эту политику в базе данных, а затем нажмите Изменить безопасность.
- Чтобы настроить разрешения для нового пользователя или группы, нажмите «Добавить». В диалоговом окне "Выбор пользователей, компьютеров или групп" введите имя пользователя или группы, для которых вы хотите установить разрешения, и нажмите "ОК".
- В списке Разрешения для пользователя или группы настройте разрешения, которые вы хотите использовать для пользователя или группы. Когда вы добавляете нового пользователя или группу, флажок Разрешить рядом с разрешением на запуск, остановку и паузу устанавливается по умолчанию. Этот параметр позволяет пользователю или группе запускать, останавливать и приостанавливать службу.
- Нажмите "ОК" два раза.
Чтобы применить новые параметры безопасности к локальному компьютеру, щелкните правой кнопкой мыши Конфигурация и анализ безопасности и выберите Настроить компьютер сейчас.
Вы также можете использовать инструмент командной строки Secedit для настройки и анализа безопасности системы. Для получения дополнительных сведений о Secedit нажмите «Пуск» и выберите «Выполнить». Введите cmd в поле «Открыть» и нажмите «ОК». В командной строке введите secedit /? , а затем нажмите клавишу ВВОД.Обратите внимание, что при использовании этого метода для применения параметров все параметры в шаблоне применяются повторно, и это может переопределить другие ранее настроенные разрешения для файлов, реестра или служб.
Способ 3. Используйте Subinacl.exe
Последний способ назначения прав на управление службами заключается в использовании утилиты Subinacl.exe из набора ресурсов Windows 2000. Синтаксис следующий:
SUBINACL /SERVICE \\MachineName\ServiceName /GRANT=[DomainName]UserName[=Access]
Для успешного выполнения этой команды пользователь, выполняющий эту команду, должен иметь права администратора.
Если MachineName опущено, подразумевается локальный компьютер.
Если имя домена опущено, учетная запись ищется на локальном компьютере.
Хотя в примере синтаксиса указано имя пользователя, это также работает и для групп пользователей.
Доступ может принимать следующие значения:
F : Полный доступ
R : Общий режим чтения
W : Общий режим записи
X : Общий режим выполнения
L : Контроль чтения
Q : Конфигурация службы запросов
/>S : запрос статуса службы
E : перечисление зависимых служб
C : изменение конфигурации службы
T : запуск службы
O : остановка службы
P : пауза/продолжение Служба
I : опрос службы
U : служба определяемых пользователем управляющих команд
Если Access опущен, предполагается "F (Полный доступ)".
Subinacl поддерживает аналогичные функции в отношении файлов, папок и разделов реестра. Дополнительную информацию см. в Наборе ресурсов для Windows 2000.
Автоматизация множественных изменений
В Subinacl нет параметра, который вы можете указать, чтобы установить требуемый доступ для всех служб на конкретном компьютере. Однако следующий пример сценария демонстрирует один из способов расширения метода 3 для автоматизации задачи:
По умолчанию обычные пользователи (не администраторы) не могут управлять службами Windows. Это означает, что пользователи не могут останавливать, запускать, перезапускать или изменять настройки/разрешения служб Windows. В некоторых случаях пользователю необходимо иметь разрешения на перезапуск определенных служб или управление ими. В этой статье мы рассмотрим несколько способов управления разрешениями для служб Windows. В частности, мы покажем вам, как разрешить пользователю без прав администратора запускать, останавливать и перезапускать определенную службу Windows, предоставляя соответствующие разрешения.
Допустим, вам нужно предоставить учетной записи домена contoso\tuser разрешения на перезапуск службы диспетчера очереди печати (имя службы — диспетчер очереди печати). Когда пользователь, не являющийся администратором, пытается перезапустить службу, появляется ошибка:
В Windows нет простого и удобного встроенного инструмента для управления разрешениями для служб. Рассмотрим несколько способов предоставления пользователю прав на управление сервисом:
Настройка разрешений службы Windows с помощью инструмента SC.exe (контроллер службы)
Стандартный встроенный в Windows метод управления разрешениями системных служб предполагает использование инструмента sc.exe (Service Controller). Основной проблемой при использовании этой утилиты является сложный синтаксис формата разрешений службы (формат SDDL — язык определения описания безопасности).
Вы можете получить текущие разрешения для службы Windows в виде строки SDDL следующим образом:
sc.exe sdshow Spooler
Что означают все эти символы?
Первая буква после скобок означает: разрешить (A) или запретить (D).
Следующий набор символов — это назначаемые разрешения.
Последние два символа — это объекты (пользователь, группа или SID), которым предоставлены разрешения. Существует список предопределенных групп.
Вместо предопределенной группы вы можете явно указать пользователя или группу по SID. Чтобы получить SID для текущего пользователя, вы можете использовать команду:
Или вы можете найти SID любого пользователя домена с помощью командлета Get-ADUser:
Get-ADUser -Identity 'sadams' | выберите SID
Вы можете получить SID группы безопасности AD с помощью командлета Get-ADGroup:
Чтобы назначить строку разрешений SDDL для конкретной службы, вы можете использовать команду sc sdset. Например, разрешения могут быть предоставлены пользователю с помощью следующей команды:
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 для разрешения пользователю запуска/остановки/перезапуска службы
Для управления разрешениями службы проще использовать инструмент командной строки SubInACL от Sysinternals (автор Марк Руссинович).Синтаксис этого инструмента намного проще и удобнее. Вот как вы можете предоставить разрешения на перезапуск службы с помощью SubInACL:
Примечание. В этом случае мы предоставили пользователю права приостанавливать (приостанавливать/продолжать), запускать и останавливать (перезапускать) службу. Полный список доступных разрешений службы:
Если вы все сделали правильно, служба должна перезапуститься.
Чтобы отозвать назначенные разрешения службы, используйте параметр /revoke инструмента subinacl.exe. Например:
subinacl.exe /service Spooler /revoke=contoso\tuser
Как изменить разрешение службы Windows с помощью Process Explorer?
Вы можете изменить разрешения службы Windows с помощью еще одной утилиты Sysinternals — Process Explorer. Запустите Process Explorer от имени администратора и найдите процесс нужной вам службы. В нашем примере это spoolsv.exe (исполняемый файл спулера — C:\Windows\System32\spoolsv.exe ). Откройте свойства процесса и перейдите на вкладку Службы.
Нажмите кнопку Разрешения и добавьте пользователя или группу в открывшемся окне. После этого выберите разрешения, которые вы хотите назначить (Полный доступ/Запись/Чтение).
Настройка разрешений службы Windows с помощью PowerShell
В галерее TechNet есть отдельный неофициальный модуль PowerShell для управления разрешениями для различных объектов Windows — PowerShellAccessControl Module (скачать его можно здесь). Этот модуль также позволяет вам управлять разрешениями службы. Установите этот модуль и импортируйте его в сеанс PS:
Вы можете получить действующие разрешения для конкретной службы Windows из PowerShell следующим образом:
Диспетчер очереди Get-Service | Get-EffectiveAccess-Principal corp\tuser
Чтобы разрешить пользователю без прав администратора запускать и останавливать службу очереди печати, выполните команду:
Диспетчер очереди Get-Service | Add-AccessControlEntry -ServiceAccessRights Start,Stop -Principal corp\tuser
Использование шаблонов безопасности для управления разрешениями службы
Наглядным (но требующим дополнительных действий) графическим способом управления разрешениями службы является использование шаблонов безопасности. Откройте консоль mmc.exe и добавьте оснастку «Шаблоны безопасности».
Создайте новый шаблон безопасности (Новый шаблон).
Укажите имя нового шаблона и перейдите в раздел Системные службы. В списке служб выберите службу Диспетчер очереди печати и откройте ее свойства.
Выберите режим запуска (Автоматически) и нажмите «Изменить безопасность».
С помощью кнопки "Добавить" добавьте учетную запись пользователя или группу, которым необходимо предоставить разрешения. В нашем случае достаточно разрешения на запуск, остановку и паузу.
Сохранить этот шаблон.
Примечание. Содержимое шаблона безопасности сохраняется в виде файла INF в папке C:\Users\%username%\Documents\Security\Templates.
Если вы откроете этот файл, вы увидите, что информация о разрешениях сохранена в формате SDDL, упомянутом ранее. Полученную таким образом строку можно использовать в качестве аргумента команды sc.exe.
[Unicode]
Unicode=yes
[Версия]
signature="$CHICAGO$"
Редакция=1
[Общие настройки сервиса]
"Spooler",2,"D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;RPWPDTRC;;;S -1-5-21-3243688314-1354026805-3292651841-1127)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
Теперь вам нужно только создать новую базу данных (Open Database) с помощью оснастки Security Configuration and Analysis и импортировать свой шаблон безопасности из файла Spooler User Rights.inf.
Примените этот шаблон, выбрав параметр «Настроить компьютер сейчас» в контекстном меню.
Теперь вы проверяете, может ли пользователь разрешить управление службой диспетчера очереди печати под учетной записью без прав администратора.
Как предоставить пользователям права на управление службой с помощью GPO?
Если вам необходимо предоставить пользователям разрешения на запуск/остановку службы на нескольких серверах или компьютерах домена, проще использовать функции групповой политики (GPO):
- Создайте новый объект групповой политики или отредактируйте существующий, свяжите его с нужным контейнером Active Directory (OU) с объектами-компьютерами. Перейдите в раздел политики Конфигурация компьютера -> Параметры Windows -> Параметры безопасности -> Системные службы;
- Найдите службу диспетчера очереди и предоставьте пользователям разрешения, как описано выше. Сохраните изменения;
Параметры безопасности для всех служб, для которых вы изменили разрешения по умолчанию, хранятся в собственном ключе реестра HKLM\System\CurrentControlSet\Services\\Security в параметре Security типа REG_BINARY.
Это означает, что одним из способов установки разрешений службы на других компьютерах является экспорт/импорт этого параметра реестра (в том числе через объект групповой политики).
Итак, мы рассмотрели несколько способов управления разрешениями для служб Windows, которые позволяют предоставлять любые разрешения для системных служб пользователю без прав администратора. Если пользователю требуется удаленный доступ к службе без предоставления ему прав локального входа в систему или доступа к RDP, вы должны разрешить пользователю удаленно подключаться и перечислять службы с помощью диспетчера управления службами.
При установке BlackFog автоматически создается служба для правильной работы в вашей системе. Если учетная запись пользователя была изменена системным администратором, программа установки может не создать и запустить службу под вашей локальной учетной записью. Вы увидите сообщение «Убедитесь, что у вас достаточно прав для установки системных служб».
Если вы используете Windows 10, вы также должны отключить «Ограниченный режим».
Windows 10S
Если вы используете Windows 10S или Windows 10 в S-режиме, вам необходимо перейти на полную версию Windows 10, которая представляет собой одностороннее бесплатное преобразование, иначе вы не сможете запускать сторонние приложения вне Магазина Windows.
Чтобы переключиться в обычный режим, перейдите в меню "Параметры Windows" и нажмите "Обновление и безопасность", а затем "Активация". Найдите разделы «Переключиться на Windows 10 Home или Pro» и нажмите ссылку «Перейти в магазин». Вы будете перенаправлены на веб-страницу для отключения S-режима.
Все выпуски Windows
Обратите внимание, что начиная с версии BlackFog 4.9 эта процедура больше не требуется. Последняя версия установщика BlackFog автоматически определяет и корректирует разрешения по мере необходимости. Пожалуйста, загрузите последнюю версию установщика с нашей страницы загрузок прямо сейчас.
Обычно учетные записи пользователей в Windows уже имеют соответствующие права для правильной установки службы. Однако некоторые системы были изменены, чтобы предотвратить это с помощью локальных учетных записей. В таких ситуациях важно, чтобы разрешение было предоставлено в соответствии с описанной ниже процедурой.
Выполните следующие действия, чтобы изменить привилегию:
- Запустите gpedit.msc
- В дереве разверните Конфигурация компьютера > Параметры Windows > Параметры безопасности > Локальные политики > Назначение прав пользователя.
- В области сведений найдите и дважды нажмите «Вход в качестве службы».
- Если параметр безопасности еще не определен, установите флажок Определить эти параметры политики.
- Нажмите «Добавить пользователя или группу», а затем добавьте соответствующую учетную запись в список учетных записей, обладающих правом «Вход в качестве службы».
По завершении закройте редактор объектов групповой политики и обновите локальную групповую политику, запустив gpupdate /force в административной командной строке, как показано ниже.
Читайте также: