Я использую сервер GitLab на компьютере с Linux, используя Nginx в качестве веб-сервера.
Несколько процессов (запускаемых вручную как пользователь root с /etc/init.d/foo start
или автоматически как подпроцессы) запускаются как разные пользователи:
- nginx как пользователь www
- postgres как postgres
- редис-сервер как редис
- рельсы единорога и сидекик как мерзавец
Пользователь git настраивается как no-login, я обычно использую sudo -u git -H foo
чтобы делать вещи как пользователь git.
Пользователь установил исполняемый файл (node.js) по локальному пути. Чтобы использовать его, мне нужно изменить sudo на sudo -u git -H env "PATH=/home/git/local/bin/:$PATH" foo
. Я также добавил его в файл .bashrc пользователя git, но я полагаю, что он никогда не выполняется, поскольку вход в оболочку запрещен.
Поскольку у меня проблемы с сервером GitLab, я подозреваю, что в службе неправильно установлена переменная PATH, и я не могу найти node.js по локальному пути.
Мой вопрос: Как мне установить переменные среды, такие как PATH, для пользователей, не входящих в систему, чтобы службы, работающие от имени этого пользователя (запускаемые пользователем root с помощью /etc/init.d/foo start
или при загрузке), имели к нему доступ?
Бонусный вопрос: какому процессу / пользователю потребуется доступ к движку Javascript? Nginx / WWW-пользователь? Или Rails(Единорог)/ мерзавец?