43 votes

Quelle est la différence entre /etc/environment et /etc/profile?

Je comprends que l'ancien est chargé avant le dernier, mais quelle est la différence dans leur but et autrement ? Y a-t-il des bonnes raisons pour lesquelles je devrais définir certaines variables dans l'un et pas dans l'autre ? Sauf le fait que /etc/environment semble exister pour mettre en place l'environnement pour tous les processus exécutés par le système, tandis que /etc/profile sert à mettre en place l'environnement utilisé et propagé à partir de l'interpréteur de commandes de connexion, n'est-ce pas ?

Aussi, à titre d'information, quel programme lit traditionnellement /etc/environment ? Est-ce lié à POSIX, ou juste une convention ?

53voto

Timothy Harper Points 56

/etc/environment ne fait pas partie de POSIX, il appartient à PAM (Pluggable Authentication Module), et seuls les programmes compilés avec le support de PAM sont capables de l'utiliser (principalement les systèmes de connexion, qui démarreront ensuite l'environnement de l'utilisateur ou le shell). Cela signifie qu'il n'est même pas lu par votre shell.

Vous pouvez voir les programmes utilisant /etc/environment avec grep -l pam_env /etc/pam.d/*.

Ainsi, /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.

25voto

Mali Points 378

Extrait de L'aide d'Ubuntu

/etc/environment - Ce fichier est spécifiquement destiné aux paramètres de variables d'environnement à l'échelle du système. Ce n'est pas un fichier de script, mais consiste plutôt en expressions d'assignation, une par ligne. Plus précisément, ce fichier stocke les paramètres de localisation et de chemin à l'échelle du système.

/etc/profile - Ce fichier est exécuté chaque fois qu'un shell de connexion bash est entré (par exemple, lors de la connexion depuis la console ou via ssh), ainsi que par DisplayManager lorsque la session de bureau se charge.

Je pense que tout cela n'est qu'une convention mais pas loin d'être une norme (je ne connais pas les systèmes de type RedHat).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X