Page tree
Skip to end of metadata
Go to start of metadata

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Переменные окружения для пользовательских сессий

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

Наиболее частое применение этого файла - изменение значения переменной окружения PATH (список каталогов, в которых производится поиск исполняемых файлов). Например, для добавления в список каталога /opt/wine-6.17 (см. Установка wine на Astra Linux) следует добавить в файл .profile строку:

PATH=/opt/wine-6.17:$PATH

Другим примером часто используемых переменных окружения являются переменные:

  • LD_PRELOAD - список библиотек, загружаемых до загрузки других библиотек, независимо от упоминания их запускаемой программе;
  • LD_LIBRARY_PATH - список каталогов, в которых будет выполняться поиск динамических библиотек, упоминаемых в запускаемой программе.

Подробнее см. man ld.so.

Значения этих переменных могут задаваться так же, как значения переменной PATH в примере выше:

LD_PRELOAD=/usr/lib/spo/spo.so:$LD_PRELOAD
LD_LIBRARY_PATH="/user/lib/spo:$LD_LIBRARY_PATH


Использование переменной окружения LD_PRELOAD является небезопасным, так как путем подмены библиотек позволяет внедрить в приложения непредусмотренные возможности.

"При запуске процесса с установленными привилегиями загрузчик динамических библиотек осуществляет сброс переменных среды окружения, позволяющих осуществлять загрузку динамических библиотек из нестандартных каталогов LD_LIBRARY_PATH и LD_PRELOAD. Таким образом, установка привилегий для пользователя может привести к невозможности запуска приложений, использующих динамическую загрузку библиотек из нестандартных каталогов."
"Руководство по комплексу средств защиты информации",  ч.1

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

. ~/.profile
или
source ~/.profile

Если в качестве оболочки входа используется оболочка bash, то:

  • при входе в пользовательскую консольную сессию (interactive login shell) выполняется системный файлы /etc/profile, а затем проверяются пользовательские файлы ~/.bash_profile, ~/.bash_login, и ~/.profile. Пользовательские файлы проверяются в указанном порядке и выполняется первый из найденных и доступных для чтения;
  • при интерактивном запуске в пользовательской сессии (interactive shell not login shell) выполняется пользовательский файл ~/.bashrc;
  • при неинтерактивном запуске (выполнении сценария) проверяется значение переменной окружения BASH_ENV, и делается попытка исполнить указанный файл.

Кроме того, поведение bash может изменяться в зависимости от способа вызова и опций команды, подробнее см. man bash.
Проверить, какую оболочку входа использует пользователь можно командой:

getent passwd $USER | sed "s/.*://"

Значения переменных окружения должны присваиваться в используемых файлах.

Системные переменные окружения

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

PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
export PATH

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

Переменные окружения PAM-стека

При выполнении PAM-стека (аутентификация и авторизация пользователей) используется отдельное окружение, системные параметры которого задаются в файлах /etc/security/pam_env.conf и /etc/environment, а пользовательские - в файлах ~/.pam_environment.
Подробнее см. man pam_env и man pam_env.conf.

Переменные окружения пользовательских служб systemd

Конфигурационные файлы при запуске пользовательских служб извлекаются из каталогов:

  • ~/.config/environment.d/*.conf
  • /etc/environment.d/*.conf
  • /run/environment.d/*.conf
  • /usr/lib/environment.d/*.conf
  • /etc/environment

Подробнее cм. man environment.d.

Переменные окружения для графической сессии Xorg

Переменные окружения для графической сессии Xorg можно задавать в файле  /etc/X11/fly-dm/Xsession. Синтаксис такой же, как и для других сценариев bash:

export <имя_переменной>=<значение>
  • No labels