В системах на основе Unix и Linux вы обычно запускаете службы в контексте учетных записей служб, для которых не установлен пароль и которые нельзя войти в систему. Насколько я понял, процессы порождаются процессом с более высокими привилегиями и переключаются на учетную запись службы с помощью setuid.
Возможно ли то же самое в системах на базе Windows, или вам всегда нужно устанавливать пароль для учетных записей служб?
Если вы не хотите, чтобы ваша служба запускалась в учетной записи с паролем, вы можете настроить ее для работы в локальной системе или в качестве одной из встроенных учетных записей службы, СЕТЕВОЙ СЛУЖБЫ или ЛОКАЛЬНОЙ СЛУЖБЫ. Или, если вам нужна более детальная безопасность, вы можете использовать виртуальную учетную запись.
См. Раздел «Использование виртуальных учетных записей» в Пошаговое руководство по учетным записям служб для получения дополнительной информации о виртуальных счетах. В Руководстве также описываются управляемые учетные записи, которые представляют собой учетные записи домена, пароли которых автоматически управляются Windows.
Как правило, вы просто используете NETWORK SERVICE или LOCAL SERVICE, если вам не нужно предоставить службе доступ к конфиденциальным файлам или папкам или другим защищаемым объектам, таким как разделы реестра.
Управляемые учетные записи более сложны, чем виртуальные учетные записи, но в среде Active Directory вы можете захотеть использовать их, если вам нужно предоставить службе доступ к конфиденциальному контенту в сети, например, к удаленному общему ресурсу или SQL Server с использованием встроенной проверки подлинности.