Пример создания системного пользователя для запуска служб systemd


Автор - Ковалев Антон
Дата последнего редактирования - 12.07.2024

* Проверено на ubuntu 22.04 / ALSE 1.7.x. Для других ОС смотрите соответствие и наличие данных команд в официальной документации поставщика вашей ОС
* С описанием ключей и параметров команд можно ознакомиться используя утилиту man <имя команды>, предустановленную в большинстве ОС
* Команды, описанные ниже выполняются с правами su

Для примера попробуем создать системного пользователя с именем gitflic-agent, для запуска агента GitFlic Runner в службе systemd.

1. Создайте нового системного пользователя командой useradd:

useradd -r -m -s /usr/sbin/nologin gitflic-agent;

2. Создайте необходимые папки и файлы в домашней директории пользователя gitflic-agent командой mkdir.

mkdir -p /home/gitflic-agent/gitflic-runner/build /home/gitflic-agent/gitflic-runner/cache  

3. Скопируйте файлы runner.jar, helper.jar, helper.sh в директорию /home/gitflic-agent/gitflic-runner командой cp

cp runner.jar helper.jar shell-scripts/helper.sh /home/gitflic-agent/gitflic-runner/

4. Установите владельца папки и выдайте необходимые права для файлов командой chown и chmod

sudo chown -R gitflic-agent:gitflic-agent /home/gitflic-agent/; 
sudo chmod -R 744 /home/gitflic-agent/gitflic-runner/

5. В конфигурации юнита для systemd добавьте строчки:

User=gitflic-agent
Group=gitflic-agent

**** Перед выполнением следующих действий, ознакомьтесь с параметрами файла /etc/sudoers.***
* Данные действия могут нарушить безопасность вашей ОС

  • Если необходимо выполнять команды c правами su, добавьте пользователя gitflic-agent в группу sudo командой usermod
usermod -aG sudo gitflic-agent;
  • Что бы убрать запрос пароля при выполнении команд с правами su, у пользователя gitflic-agent, отредактируйте файл /etc/sudoers командой sed, добавив в файл соответствующую запись
sed -i '$ a gitflic-agent ALL=(ALL) NOPASSWD: ALL' /etc/sudoers