Модуль pam_env может иметь только тип auth. Он управляет установкой и сбросом переменных среды. Это делается в дополнение к установкам файлов bashrc, profile и других файлов инициализации интерпретатора команд. Модуль принимает четыре аргумента (табл. 5.4).
Несмотря на то что модуль способен устанавливать/сбрасывать значения переменных среды, указанных в файле /etc/environment или подобном ему, его основное достоинство заключается в поддержке переменных среды, специфичных для модулей РАМ.
Эти переменные доступны в файле, на который ссылается аргумент conf file (по умолчанию — /etc/security/pam_env.conf). Пример файла pam_env.conf показан в листинге 5.7.
Листинг 5.7. Пример файла /etc/security/pam_env.conf
Задаем переменную REMOTEHOST для любых удаленных узлов.
Значение по .умолчанию — "localhost", а не отсутствие установки.
REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
Задаем переменную DISPLAY.
DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
Несколько простых переменных. PAGER DEFAULT=less MANPAGER DEFAULT=less
Таблица 5.4. Аргументы модуля pam_env
Аргумент Описание
debug Заставляет модуль передавать дополнительные сообщения в систему Syslog
conf f Ие=файл Задает конфигурационный файл (по умолчанию — /etc/security/
pam_env.conf)
envfile=?aiirc Задает файл с установками переменных среды (по умолчанию — /etc/
environment)
readenv=0|1 Указывает на то, должен ли опрашиваться файл с установками переменных
среды (значение по умолчанию — 1)
Общий синтаксис записей файла pam_env. conf таков: ПЕРЕМЕННАЯ [DEFAULT=[значение]] [OVERRIDE=[значение]] где ПЕРЕМЕННАЯ — это имя переменной среды, параметр DEFAULT задает значение по умолчанию, а параметр OVERRIDE — устанавливаемое значение. Например, в листинге 5.7 переменная REMOTEHOST задается равной либо значению переменной PAM_RHOST, либо localhost, если переменная PAM_RHOST не определена. Выбор по умолчанию удобен для переменной DISPLAY, которая автоматизирует настройку сеансов X Window Sys-tem, а также для любых других переменных, не упоминаемых в файлах инициализации интерпретатора команд.
Специальные переменные среды, доступные через модуль pam_env, перечислены в табл. 5.5.