Как создать пользователя службы для приложения и запустить его при запуске от этого пользователя

У меня есть приложение, которое я должен запустить при запуске.

Я создал системного пользователя для этого приложения с useradd -r serviceUser и сделал его владельцем каталога приложений.

Затем я пишу скрипт запуска и добавляю его в автозапускupdate-rc myserver.sh defaults

Мой сценарий в /etc/init.d/myserver.sh

#!/bin/sh

start() {
  cd "/my_server_dir/"
  su -c "./myServer" serviceUser
}

if [ "x$1" = "xstart" ]
then
    start
    exit 0
fi

Когда я запускаю его от своего реального логина/etc/init.d/myserver.sh startПодскажите пожалуйста пароль. Но я не установил никаких паролей.

Я думаю, что где-то я был не прав.

1 ответ

Решение

Не уверен, что вы ожидаете, позвонив su всегда будет запрашивать пароль, если вы не запустите его от имени пользователя root, который делает все без запроса или с sudo, который вместо этого запросит пароль пользователя.

Так что, если вы хотите использовать этого serviceUser с su -c и не требуя прав sudo, запустите sudo passwd serviceUser и установите пароль.

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