2

Я использую сервер 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(Единорог)/ мерзавец?

0