Ubuntu 10 добавить переменную пути для всех пользователей все время

Где я могу добавить к своему пути, что он будет доступен для всех пользователей, всех оболочек, все время. В этом случае я хочу, чтобы /opt/grails/bin всегда был доступен, даже когда он запускается как пользователь tomcat из jenkins.

Есть 6+ файлов, в которые вы можете вставить это, но я все еще за годы своей работы являлся разработчиком программного обеспечения, который иногда обрабатывает задачи системного администратора Linux, чтобы найти четкое объяснение того, где вы делаете export PATH=$PATH:/opt/grails/bin
и иметь доступ к нему каждому пользователю, каждому типу оболочки, все время fXXXing.

Я на Ubuntu 10.10, если это имеет значение.

Спасибо

1 ответ

Обычно это /etc/profile (читается bash, dash, ksh и его режимами "sh").

Для пользователей системы вы можете объявить отдельные переменные в / etc / environment. Это не очень хорошая практика, но она работает (я использовал ее для JAVA_HOME и т. Д.).

Основная проблема с PATH заключается в том, что она должна отличаться для системных пользователей и системных суперпользователей. Поэтому вместо одной переменной в / etc / environment я бы попытался пропатчить /etc/profile (способ debian / ubuntu - поместить скрипт в /etc/profile.d/).

Одна строка экспорта - это bashism, проверьте первые строки / etc / profile на наличие переносимого синтаксиса (для работы с / bin / sh, dash и т. Д.).

Это решение не должно работать для оболочек csh, tcsh и им подобных, но должно работать для оболочек типа bourne.

В Ubuntu вы можете исследовать PAM, который может кое-что сказать о среде и PATH, но это больше касается входа в систему, чем инициализации оболочки.

Обновление: чтобы использовать PAM (su, sudo и т. Д.), Попробуйте: /etc/login.defs, возможно, единственный файл, который вам нужен.

Другие вопросы по тегам