Ich verstehe, dass Ersteres vor Letzterem geladen wird, aber was ist der konzeptionelle Unterschied? Gibt es gute Gründe, warum ich einige Variablen in einer und nicht in einer anderen setzen sollte? Mit Ausnahme der Tatsache, dass /etc/environment
anscheinend die Umgebung für alle vom System ausgeführten Prozesse eingerichtet wird, während /etc/profile
die Umgebung für die Einrichtung verwendet und von der Anmeldeshell weitergegeben wird, richtig?
Nebenbei bemerkt, welches Programm liest sich traditionell /etc/environment
? Handelt es sich um POSIX oder nur um eine Konvention?
VAR=value
in einer Shell wirksam (nach erneuter Anmeldung)./etc/environment
ist nicht Teil von POSIX, gehört zu PAM (Pluggable Authentication Module) und kann nur von Programmen verwendet werden, die mit PAM-Unterstützung kompiliert wurden (hauptsächlich von Anmeldesystemen, die anschließend die Shell oder die Benutzerumgebung starten). Dies bedeutet, dass es nicht einmal von Ihrer Shell gelesen wird.Sie können die Programme
/etc/environment
mit sehengrep -l pam_env /etc/pam.d/*
.Wird
/etc/environment
also zum Setzen von Variablen für Programme verwendet, die normalerweise nicht aus einer Shell heraus gestartet werden.quelle