Как я могу начать / остановить как сервис как обычный пользователь без sudo [закрыт]

Я устанавливаю собственное приложение на машине Ubuntu.

Мой путь установки приложения: -

/usr/local/myapp

Примечание: Мое приложение создаст некоторую папку и файлы под / tmp для обработки во время запуска приложения.

После того, как я вошел в систему Ubuntu, я хочу начать, как показано ниже, без использования sudo

service myapp start

Как я могу достичь этого?

3
задан 16 October 2017 в 16:52

2 ответа

Отредактируйте файл sudoers с помощью sudo visudo и добавьте строку

USER ALL = NOPASSWD: /usr/sbin/service /usr/local/myapp *

Тогда вам не нужно вводить пароль для этой конкретной команды.

Другая возможность: Создайте скрипт, который включает запуск службы, установите бит suid для скрипта и сделайте его принадлежащим root (sudo chown root /usr/local/bin/startMyappService).

Остерегайтесь подводных камней безопасности! У такого файла не должно быть прав на запись никому! Используйте абсолютные пути. Всегда думайте дважды, что вы делаете!

2
ответ дан 18 July 2018 в 05:13

Отредактируйте файл sudoers с помощью sudo visudo и добавьте строку

USER ALL = NOPASSWD: /usr/sbin/service /usr/local/myapp *

Тогда вам не нужно вводить пароль для этой конкретной команды.

Другая возможность: Создайте скрипт, который включает запуск службы, установите бит suid для скрипта и сделайте его принадлежащим root (sudo chown root /usr/local/bin/startMyappService).

Остерегайтесь подводных камней безопасности! У такого файла не должно быть прав на запись никому! Используйте абсолютные пути. Всегда думайте дважды, что вы делаете!

2
ответ дан 24 July 2018 в 18:16
  • 1
    Хотя это полезно, я не уверен, что он отвечает на вопрос. «Теперь я хочу запустить / остановить мое приложение как услугу с обычным пользователем без разрешения sudo». так что трудно понять, хотят ли они запускать «myapp». без привилегий root или если они просто хотят запустить sudo без пароля. – Panther 16 October 2017 в 18:17
  • 2
    Услуги - это "система" программ, поэтому они должны запускаться как таковые. Вы просто хотите, чтобы пользовательская программа общалась с другой программой, притворяясь службой, которая работает в фоновом режиме? Если это так, пользователь может запустить «службу», как $ / usr / sbin / service & amp ;. Однако эта "услуга" будет общаться только с этим пользователем, так как он не имеет прав root. – jpezz 16 October 2017 в 18:41
  • 3
    @jpezz: если "услуга" не нуждается в корневом разрешении, вопрос не имеет для меня большого смысла, поэтому я предположил, что это необходимо. Между тем, я полагаю, что OP действительно не интересуется ответом и не удосуживается прочитать его или ответить на комментарии. – Philippos 17 October 2017 в 10:38
  • 4
    @Philippos, я согласен с вами, но я хотел включить возможность того, что его определение службы было связано с системным сервисом, а не с фоновой программой, взаимодействующей с программой пользователя. – jpezz 17 October 2017 в 22:47

Другие вопросы по тегам:

Похожие вопросы: