1

Как установить переменные среды для пользователя наиболее общим способом, который не зависит от переменных среды оболочки (например, профиль для оболочек типа Bourne, bahsrc, zshrc, zshenv, ..)? Идея состоит в том, чтобы установить переменные среды для пользователя во время входа в систему и сделать их доступными (разветвленными) для любого процесса (порожденного не только процессом оболочки, но скорее любым другим процессом), включая любой тип оболочки?

1 ответ1

1

В этой документации по Ubuntu говорится о ~/.pam_environment:

Общесессионные переменные среды

Подходящими файлами для настроек переменных среды, которые должны влиять только на конкретного пользователя (а не на систему в целом), являются ~/.pam_environment и ~/.profile . После редактирования одного из этих файлов вы должны заново войти в систему , чтобы инициализировать переменные.

~/.pam_environment

Этот файл специально предназначен для настройки среды пользователя. Это не файл сценария, а скорее состоит из выражений присваивания, по одному на строку. Этот пример устанавливает переменную FOO в буквальную строку и изменяет переменную PATH:

FOO=bar
PATH DEFAULT=${PATH}:${HOME}/MyPrograms

Замечания:

  1. Вы не можете заключать значение в кавычки при выполнении простого присваивания переменной, как пример FOO=bar .

  2. Синтаксис, используемый для изменения PATH, синтаксис которого отличается от файлов сценариев, необходим для работы расширения переменных.

  3. ~/.pam_environment записывается, когда вы используете различные графические интерфейсы для установки языка или региональных форматов. Следовательно, если вы, например, установили LC_TIME, отредактировав ~/.pam_environment вручную, ваша запись будет перезаписана, если впоследствии вы будете использовать графический интерфейс поддержки языков для изменения настроек региональных форматов.

Этот файл, как и /etc/environment , похоже, используется pam_env.so который, как я считаю, будет частью процесса входа в систему и будет отдельным от любой оболочки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .