Какие минимальные разрешения пользователя требуются для установки службы Windows?
1 ответ
Административные привилегии по соображениям безопасности.
Только процессы с правами администратора могут открывать дескрипторы для SCM (Service Control Manager), которые могут использоваться функциями CreateService и LockServiceDatabase (подробнее см. Статью MSDN ). В этой статье вы увидите, что для разрешения на создание службы вам необходимо право доступа SC_MANAGER_CREATE_SERVICE (0x0002)
, которое включено в общее право доступа GENERIC_WRITE
. Если вы посмотрите немного дальше вниз по странице, то увидите, что только администраторы имеют доступ к этому через SC_MANAGER_ALL_ACCESS
. То же самое касается использования InstallUtil.exe для установки службы Windows .NET, так как InstallUtil вызывает встроенную функцию CreateService .
Приложение, устанавливающее службу, будет проходить через один из двух методов. Это звучит как очень логичный дизайн, который предотвращает проблемы безопасности, как описано здесь:
На самом деле, этот дизайн в Windows имеет смысл. Это результат соображений безопасности. Служба Windows обычно работает под учетной записью с высокими привилегиями, если обычная учетная запись может устанавливать неизвестную службу, злоумышленнику легко повысить его привилегию. Например, он может использовать installutil.exe для установки службы взлома, которая работает под учетной записью локальной службы. Затем, когда служба запустится, вся машина будет контролироваться хакером с обычной учетной записью пользователя. Это действительно дыра в безопасности. Таким образом, Windows позволяет только администраторам устанавливать службу.