.pam_environment não carregado no TTY

1

Eu tenho variáveis de ambiente definidas em ~ / .pam_environment e elas existem como esperado em qualquer emulador de terminal gráfico que eu abro. Se eu abrir um terminal virtual, por exemplo TTY1 e login, minhas variáveis de ambiente PAM não estão presentes.

Como posso garantir que as variáveis ~ / .pam_environment sejam sempre carregadas?

    
por kzh 15.06.2015 / 02:31

2 respostas

1

Uma maneira é editar /etc/pam.d/login da seguinte forma:

--- 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

Não sei dizer se é o "jeito certo", no entanto.

    
por Gunnar Hjalmarsson 15.06.2015 / 03:43
0

De acordo com a documentação oficial, ~ / .pam_environment é para variáveis de ambiente de toda a sessão que afetarão apenas um usuário específico . Isso significa que, quando você edita esse arquivo como você mesmo ou como root, você edita dois arquivos diferentes. Se você fizer isso como seu usuário:

user@here:~$ sudo nano ~/.pam_environment

será aberto /home/user/.pam_environment.

Mas se você abrir como root

user@here:~$ sudo su
root@here:~$ nano ~/.pam_environment

ele irá abrir /root/.pam_environment. Então você tem que ter cuidado para não editar este arquivo como root.

Para verificar se suas variáveis de ambiente existem, edite ~ / .pam_environment, salve e saia ou saia da sessão ssh. Quando você faz o login novamente, execute export , que imprime todas as variáveis

user@here:~$ export
    
por dgpro 31.03.2016 / 21:32