Отказано в доступе при попытке запустить WSL bash.exe от имени системного пользователя (через службу)

Я хочу управлять службой, работающей внутри WSL, через службу-оболочку, работающую в Windows. Но когда я пытаюсь запустить службу-оболочку Windows (которая по умолчанию запускается от имени системного пользователя), она выдает ошибку «Отказано в доступе».

Тот же сервис при запуске от имени обычного пользователя с правами администратора работает нормально.

Кто-нибудь знает способ обойти это и сделать возможным запуск bash.exe от имени системного пользователя? Или так задумано и этого следует избегать?

Примечание. Я использую следующий код для запуска службы WSL. (Я встраиваю эту команду в исполняемый файл и устанавливаю ее в Windows как службу с помощью winsw)

exec.Command("bash.exe", "-c", "sudo /bin/bash service my-linux-service start")

person Prasad    schedule 16.10.2020    source источник


Ответы (1)


Столкнулся с той же проблемой сегодня,
я использую NSSM для настройки служб Windows, и мне удается разобраться, установив objectName для текущего пользователя для этой службы.
Теперь моя служба выполняется пользователь, который может получить доступ к WSL:

nssm set <servicename> ObjectName <username> <password>

Примечание. <username> должно точно соответствовать результату whoami.exe.

Дополнительные сведения см. в документации NSSM.

person tilak    schedule 24.02.2021