Как мне установить переменную PATH для службы, которая работает как пользователь без регистрации?
Я использую сервер 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(Единорог)/ мерзавец?