Итак, я ищу способ запустить системную службу во время загрузки для работы от имени обычного пользователя.
Я создал служебный файл /etc/systemd/system/my-service.service
как root, а затем, когда я попытался запустить службу как обычный пользователь: service my-service start
Мне дали возможность выбрать пользователя для запуска службы, но затем меня также попросили ввести пароль. Однако я не настраивал пропуск для этого пользователя специально и использую только закрытый ключ для аутентификации. Сервис, который я создал, мне просто нужно выполнить команду под конкретным пользователем, а не под root. Какие у меня здесь варианты?
Вы должны получить доступ к /etc/sudoers
файл и добавьте следующую строку:
user ALL=NOPASSWD:/etc/systemd/system/my-service.service
Это позволит пользователю запускать / останавливать / перезапускать службу без запроса пароля.
Вам нужен root-доступ для запуска служб, даже если они настроены для работы от имени пользователя.
Так:
sudo service my-service start
Однако вашему пользователю необходим доступ к sudo ... для первого пользователя, который настроен на ubuntu, это обычно так по умолчанию. Затем вам нужно будет ввести пароль вашего собственного пользователя (не того, под которым работает служба).
Вы также можете настроить /etc/sudoers
чтобы позволить вашему пользователю запускать команду без запроса пароля.