Как установить переменную среды для всех под моей системой Linux?

Это кажется, что Ваш друг серьезно неправильно использовал интерфейсы.

я также видел веб-приложения с интерфейсами повсеместно. У некоторых людей, кажется, есть идея, что интерфейс так или иначе лучше, чем просто регулярная сигнатура метода. Простые параметры уже предоставляют нам контракт - в большинстве случаев я полагаю, что это достаточно и делает для более простого кода.

мне кажется, что интерфейсы самыми полезными в случаях как IDisposable или ICollection - где они указывают на определенный набор функциональности для ожидания из объекта. В этих случаях они, кажется, правильный инструмент для задания.

124
задан TIMEX 29 October 2009 в 03:35
поделиться

5 ответов

Помимо / etc / profile , о котором упоминали другие, некоторые системы Linux теперь используют каталог /etc/profile.d/ ; любые файлы .sh в нем будут исходить из / etc / profile . Немного удобнее хранить в этих файлах элементы пользовательской среды, чем просто редактировать / etc / profile .

97
ответ дан 24 November 2019 в 01:08
поделиться

man 8 pam_env

man 5 pam_env.conf

Если все службы входа используют PAM , и все службы входа имеют сеанс, требуемый pam_env.so в соответствующих файлах конфигурации /etc/pam.d / * , тогда для всех сеансов входа в систему будут установлены некоторые переменные среды, как указано в файле конфигурации pam_env .

] В большинстве современных дистрибутивов Linux все это есть по умолчанию - просто добавьте нужные глобальные переменные среды в /etc/security/pam_env.conf .

Это работает независимо от оболочки пользователя и работает и для графического входа в систему (если xdm / kdm / gdm / entry /… настроен таким образом).

38
ответ дан 24 November 2019 в 01:08
поделиться

Удивительно, но в Unix и Linux на самом деле нет места для установки глобальных переменных среды. Лучшее, что вы можете сделать, это организовать для любой конкретной оболочки инициализацию для конкретного сайта.

Если вы поместите ее в / etc / profile , это позаботится обо всем для большинства posix-совместимых команд. пользователей. Вероятно, этого «достаточно» для некритических целей.

Но любой, у кого есть оболочка csh или tcsh , не увидит его, и я не верю ] csh имеет глобальный файл инициализации.

16
ответ дан 24 November 2019 в 01:08
поделиться

Некоторые интересные выдержки из справочной страницы bash:

Когда bash запускается как интерактивный оболочка входа или как неинтерактивный оболочка с опцией - логин , она сначала читает и выполняет команды из файл / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile , ~ / .bash_login и ~ / .profile , в этом порядок, а также читает и выполняет команды от первого, который существует и удобочитаемый. Параметр - noprofile может использоваться, когда оболочка запускается запретить такое поведение.
...
Когда интерактивная оболочка, которая не является логином оболочка запускается, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc , если эти файлы существуют. Это может быть запрещается с помощью параметра - norc . Параметр файла - rcfile принудительно bash для чтения и выполнения команд из файл вместо /etc/bash.bashrc и ~ / .bashrc .

Так что взгляните на / etc / profile или /etc/bash.bashrc , эти файлы - подходящие места для Глобальные настройки. Поместите в них что-то вроде этого, чтобы настроить переменную окружения:

export MY_VAR=xxx
9
ответ дан 24 November 2019 в 01:08
поделиться

Каждый процесс, работающий под ядром Linux, получает свою собственную уникальную среду, которую он наследует от своего родителя. В этом случае родителем будет либо сама оболочка (порождающая вспомогательную оболочку), либо программа «входа в систему» ​​(в типичной системе).

Поскольку среда каждого процесса защищена, нет возможности «внедрить» 'переменная окружения для каждого запущенного процесса, поэтому даже если вы измените оболочку по умолчанию .rc / profile, она не вступит в силу, пока каждый процесс не выйдет и не перезагрузит свои настройки запуска.

Загляните в / etc /, чтобы изменить переменные запуска по умолчанию для любой конкретной оболочки. Просто поймите, что пользователи могут (и часто делают) изменять их в своих индивидуальных настройках.

Unix спроектирован так, чтобы подчиняться пользователю в определенных пределах.

NB : Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Поэтому вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

Просто поймите, что пользователи могут (и часто делают) изменять их в своих индивидуальных настройках.

Unix спроектирован так, чтобы подчиняться пользователю в определенных пределах.

NB : Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Следовательно, вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

Просто поймите, что пользователи могут (и часто делают) изменять их в своих индивидуальных настройках.

Unix спроектирован так, чтобы подчиняться пользователю в определенных пределах.

NB : Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Следовательно, вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Поэтому вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Следовательно, вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

или сценарии, начинающиеся с / bin / sh, не наследуют ваши глобальные настройки по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

или сценарии, начинающиеся с / bin / sh, не наследуют ваши глобальные настройки по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов .

2
ответ дан 24 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: