Entiendo que el primero se carga antes que el segundo, pero ¿cuál es la diferencia conceptual? ¿Hay alguna buena razón por la que debería establecer algunas variables en una y no en otra? Excepto el hecho de que /etc/environment
parece existir para configurar el entorno para todos los procesos ejecutados por el sistema, mientras /etc/profile
que para configurar el entorno utilizado y propagado desde el shell de inicio de sesión, ¿correcto?
Además, en una nota al margen, que tradicionalmente programa lee /etc/environment
? ¿Está relacionado con POSIX, o solo una convención?
VAR=value
entró en vigor en un shell (después de volver a iniciar sesión)./etc/environment
no es parte de POSIX, pertenece a PAM (Módulo de autenticación enchufable), y solo los programas compilados con soporte PAM pueden usarlo (principalmente sistemas de inicio de sesión, que posteriormente inician el shell o el entorno del usuario). Esto significa que ni siquiera es leído por su shell.Puedes ver los programas usando
/etc/environment
congrep -l pam_env /etc/pam.d/*
.Por
/etc/environment
lo tanto, se utiliza para establecer variables para programas que generalmente no se inician desde un shell.fuente