Пример создания системного пользователя для запуска служб 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