.pam_environment не загружен в TTY
У меня есть переменные окружения, установленные в ~/.pam_environment, и они существуют, как и ожидалось, в любом графическом эмуляторе терминала, который я открываю. Если я открываю виртуальный терминал, например, TTY1, и регистрируюсь, мои переменные среды PAM не отображаются.
Как я могу гарантировать, что переменные ~/.pam_environment всегда загружаются?
2 ответа
Одним из способов является редактирование /etc/pam.d/login
как это:
--- a/login 2015-06-15 03:35:17.422387358 +0200
+++ b/login 2015-06-15 03:36:41.535536201 +0200
@@ -50,7 +50,7 @@
session required pam_env.so readenv=1
# locale variables are also kept into /etc/default/locale in etch
# reading this file *in addition to /etc/environment* does not hurt
-session required pam_env.so readenv=1 envfile=/etc/default/locale
+session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale
# Standard Un*x authentication.
@include common-auth
Не могу сказать, если это "правильный путь", хотя.
Согласно официальной документации, ~ /.pam_environment предназначен для переменных среды всего сеанса, которые влияют только на конкретного пользователя. Это означает, что когда вы редактируете этот файл как вы сами или как root, вы редактируете два разных файла. Если вы делаете это как ваш пользователь:
user@here:~$ sudo nano ~/.pam_environment
откроется /home/user/.pam_environment.
Но если вы откроете его как root
user@here:~$ sudo su
root@here:~$ nano ~/.pam_environment
откроется /root/.pam_environment. Поэтому вы должны быть осторожны, чтобы не редактировать этот файл как root.
Чтобы проверить, что ваши переменные среды существуют, отредактируйте ~ /.pam_environment, сохраните их и выйдите из системы или выйдите из сеанса ssh. При повторном входе в систему запускается экспорт, который выводит все переменные
user@here:~$ export