Кто-нибудь знает, какие минимальные права мне нужно было бы предоставить учетной записи пользователя домена, чтобы запустить службу Windows от имени этого пользователя?
Для простоты предположим, что служба ничего не делает, кроме запуска, остановки и записи в журнал событий «Приложения», то есть нет доступа к сети, нет настраиваемых журналов событий и т. д.
Я знаю, что могу использовать встроенные учетные записи Service и NetworkService, но возможно, что я не смогу использовать их из-за действующих сетевых политик.





Два пути:
Отредактируйте свойства службы и установите пользователя для входа в систему. Соответствующее право будет присвоено автоматически.
Установите его вручную: выберите «Администрирование» -> «Локальная политика безопасности» -> «Локальные политики» -> «Назначение прав пользователя». Отредактируйте пункт «Войти как сервис» и добавьте туда пользователя вашего домена.
Потрясающе - так что «Войти в качестве службы» - это все, что нужно для базовой службы (плюс любые права, относящиеся к логике службы, например, для доступа к сетевым ресурсам). По какой-то причине я подумал, что потребуется огромное количество прав. Спасибо
Иногда этого кажется недостаточно. Я сделал и то, и другое, и при запуске службы произошла ошибка: «Служба <Отображаемое имя службы Windows> на локальном компьютере была запущена, а затем остановлена. Некоторые службы останавливаются автоматически, если они не используются другими службами или программами». Мне пришлось сделать учетную запись пользователя администратором, чтобы она работала.
Как на самом деле сделать №1?
Простое выполнение этих двух шагов не решило мою проблему. Я просмотрел журналы событий, чтобы узнать, что еще я мог узнать, и заметил, что учетная запись домена, которую я использовал для управления службой, не имела разрешений на запись в файл журнала службы. Я сделал учетную запись домена локальным администратором, и это заставило меня работать!
@Shadoninja. У меня есть учетная запись домена в Local Admin Group, и я также добавил учетную запись домена в Logon as a service в Local security policy, но моя служба все равно не запускается. Я пытаюсь запустить службу Themes под этой учетной записью домена, но получаю сообщение об ошибке A privilege required to start doesn't exist in service account
Спасибо за ссылки, Крис. Я часто задавался вопросом о конкретных эффектах таких привилегий, как «BypassTraverseChecking», но никогда не утруждал себя поиском их.
У меня возникли интересные проблемы с запуском службы, и я обнаружил, что у нее нет доступа к ее файлам после того, как администратор произвел первоначальную установку. Я думал, что ему нужно что-то в дополнение к Logon As A Service, пока я не обнаружил проблему с файлом.
Во время Take Ownership необходимо было отключить наследование разрешений от родительских каталогов и рекурсивно применять разрешения вниз по дереву.
Однако не удалось найти параметр «давать owner», чтобы временно не делать учетную запись службы администратором.
В любом случае, я подумал, что опубликую это на случай, если кто-то другой пойдет по тому же пути, что и я, ищу проблемы с политикой безопасности, когда на самом деле это были просто права файловой системы.
Кстати, он не должен владеть файлами, ему должны быть нужны только разрешения на чтение и выполнение для файлов.
Рассматриваемые файлы включают данные времени выполнения, а также статические файлы времени сборки. Статические файлы можно читать / выполнять, но файлы времени выполнения необходимо обновлять, создавать новые файлы и каталоги, удалять файлы и т. д. Для каждого каталога можно определить, что именно необходимо, но это может измениться через выпуск или даже пакет исправлений, и его будет чертовски сложно диагностировать. Итак, вы правы в том, что требуется меньшее, чем полное владение, но с точки зрения удобства эксплуатации я все же рекомендую взять в собственность.
Это довольно давно, но на случай, если кто-то с ним столкнется, вы, как правило, захотите предоставить право «Изменить» в этом случае. Чтобы подвести итог разрешений простым способом: * Папка: разрешает чтение и запись файлов и подпапок; позволяет удалить папку * Файлы: разрешает чтение и запись файла; позволяет удалить файл. «Право собственности» фактически не предоставляет никакого доступа к файлу как таковому, только возможность устанавливать разрешения (Полный контроль включает эти права). Вместо этого администраторы должны иметь полный контроль на случай, если учетная запись службы выйдет из строя.
«BypassTraverseChecking» означает, что вы можете напрямую обращаться к любому подкаталогу глубокого уровня, даже если у вас нет всех промежуточных прав доступа к каталогам между ними, то есть ко всем каталогам, расположенным над ним, по направлению к корневому уровню.
Я объясняю это в мой ответ на SU.