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

У меня есть приложение, которое я хочу запускать в качестве службы при запуске системы, и это приложение должно запускаться от имени определенного пользователя (это приложение Apache Karaf ). У меня есть все эти настройки, но у пользователя, которого я использую для этого, есть пароль, поэтому при каждом запуске службы необходимо вводить пароль этого пользователя.

В настоящее время у меня есть пользователь со следующими записями в /etc/passwd и /etc/shadow:

# /etc/passwd
karaf-test-user:x:1002:1002::/home/karaf-test-user:/usr/sbin/nologin

# /etc/shadow
karaf-test-user::15659:0:99999:7:::

Насколько я вижу, у этого пользователя не установлен пароль, он не может войти, но у него есть домашний каталог (это требуется для приложения). Тем не менее, когда я набираю:

/etc/init.d/karaf-service start

меня просят ввести пароль этого пользователя. Как я могу предотвратить это? Как я могу изменить этого пользователя, чтобы не требовать пароль на этом этапе? Я нашел этот ответ , но он кажется мне хакерским. Это действительно единственный способ? Есть ли лучшие рекомендации, которые нужно соблюдать?

Я работаю в Ubuntu 12.04.1.

1
задан 13 April 2017 в 15:23

1 ответ

Я решил создать выделенного пользователя с паролем, но всегда управлять сервисом как root, для которого не требуется пароль для su. Чтобы сделать это безопасным, я создал группу karaf-admins и добавил следующую запись в sudoers:

%${KARAF_ADMINS} ALL=NOPASSWD: /etc/init.d/karaf-service

Это позволяет членам этой группы запускать такие команды, как sudo /etc/init.d/karaf-service start, как root без ввода пароль. Сам скрипт karaf-service затем переключится на выделенного пользователя, которого я настроил. Пока пользователям в karaf-admins не разрешено редактировать служебный скрипт или символическую ссылку (что им не должно быть), это совершенно безопасно.

0
ответ дан 13 April 2017 в 15:23

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

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