Je comprends que le premier est chargé avant le second, mais quelle est la différence conceptuelle? Existe-t-il de bonnes raisons de définir certaines variables dans l'une et pas dans l'autre? Excepté le fait qu'il /etc/environment
semble exister pour configurer l'environnement pour tous les processus exécutés par le système, tandis que /etc/profile
pour configurer l'environnement utilisé et propagé à partir du shell de connexion, n'est-ce pas?
Aussi, sur une note secondaire, quel programme lit traditionnellement /etc/environment
? Est-ce lié à POSIX, ou simplement à une convention?
VAR=value
pris effet dans un shell (après reconnexion)./etc/environment
ne fait pas partie de POSIX, il appartient au PAM (Pluggable Authentication Module), et seuls les programmes compilés avec le support PAM sont capables de l'utiliser (principalement les systèmes de connexion, qui démarrent ensuite le shell ou l'environnement utilisateur). Cela signifie qu'il n'est même pas lu par votre shell.Vous pouvez voir les programmes utilisant
/etc/environment
avecgrep -l pam_env /etc/pam.d/*
.So
/etc/environment
est utilisé pour définir des variables pour des programmes qui ne sont généralement pas démarrés à partir d'un shell.la source