![Variables de entorno en sistemas similares a Linux](https://rvso.com/image/1438160/Variables%20de%20entorno%20en%20sistemas%20similares%20a%20Linux.png)
¿Cómo configurar variables de entorno para un usuario de la manera más genérica que sea independiente de las variables de entorno del shell (como el perfil para shells tipo Bourne, bahsrc, zshrc, zshenv, ...)? ¿La idea es establecer variables de entorno para un usuario durante el inicio de sesión del usuario y hacerlas disponibles (bifurcadas) para cualquier proceso (generado no solo por el proceso de shell, sino por cualquier otro proceso), incluido cualquier tipo de shell?
Respuesta1
Esta documentación de Ubuntuhabla sobre ~/.pam_environment
:
Variables de entorno para toda la sesión
Los archivos adecuados para la configuración de variables de entorno que deberían afectar sólo a un usuario en particular (en lugar de al sistema en su conjunto) son
~/.pam_environment
y~/.profile
. Después de haber editado uno de esos archivos, deberíasvolver a iniciar sesiónpara inicializar las variables.
~/.pam_environment
Este archivo está diseñado específicamente para configurar el entorno de un usuario. No es un archivo de script, sino que consta de expresiones de asignación, una por línea. Este ejemplo establece la variable FOO en una cadena literal y modifica la variable PATH:
FOO=bar PATH DEFAULT=${PATH}:${HOME}/MyPrograms
Nota:
No puede citar el valor al realizar una asignación de variable simple como en el
FOO=bar
ejemplo.La sintaxis utilizada para modificar PATH, cuya sintaxis difiere de la de los archivos de script, es necesaria para que funcione la expansión de variables.
~/.pam_environment
se escribe cuando utiliza varias GUI para configurar el idioma o los formatos regionales. En consecuencia, si, por ejemplo, configura LC_TIME editando~/.pam_environment
manualmente, su entrada se sobrescribirá si luego utiliza la GUI de soporte de idioma para cambiar la configuración de formatos regionales.
Este archivo, al igual que /etc/environment
, parece ser consultado porpam_env.so
lo cual creo que sucedería como parte del proceso de inicio de sesión y estaría separado de cualquier shell.