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/environmentparece existir para configurar el entorno para todos los procesos ejecutados por el sistema, mientras /etc/profileque 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=valueentró en vigor en un shell (después de volver a iniciar sesión)./etc/environmentno 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/environmentcongrep -l pam_env /etc/pam.d/*.Por
/etc/environmentlo tanto, se utiliza para establecer variables para programas que generalmente no se inician desde un shell.fuente