Создание пользователя для запуска nodejs приложения и переменных окружений?
Смотрите, поставил я в общем Ubuntu, установил все нужные пакеты, также имеется простое node js приложение которое работает с переменными окружениями process.env.SECRET_KEY.
Для запуска в production мне нужно создать, как я понимаю, отдельного пользователя который будет иметь доступ только к запуску проекта node js и наверное, на чтение кода в /var/www/my_project. Как его создать с такими правами? Также у меня имеются секретные ключи которые я собираюсь задавать до запуска проекта для текущего сеанса. Как их правильно задавать и под каким пользователем их задавать? Заморачиваться и использовать vault, AWS и тд не хочу, мне больше впала идея с сеансами.
Как я понимаю, это должно выглядеть так:
— Создаем пользователя с норм правами (testuser).
— Переключаемся на пользователя testuser.
— Создаем в консоле наши переменные окружения для текущего сеанса.
— Запускаем наш node js проекта.
— Переходим в root и забираем у пользователя права на редактирование кода и работу с процессами.
Я верно все это расписал? Если да, то как мне после запуска забрать все права и разрешить исключительно только запускать этот my_project?
Забирать права на редактирование кода нужно для того, чтобы злоумышленник получив доступ к серверу не смог через консоль получить наши переменные окружения.
Варианты
- создать скрипт, задающий переменные и запускающий процесс
- написать Unit для SystemD - в них можно задавать переменные и указывать пользователя
Пользователя лучше создавать как "системного" - в этом случае у него поумолчанию не будет шела