A few have answered saying that /etc/environment
is depricated and/or not used in Debian anymore, and this is (as at version 7) false.
The file is actually read by PAM -- specifically, pam_env(8)
, via a default to the envfile
flag. The manpage also states this default under the FILES section.
The wikis quoted (especially the locale one) merely state that locale-based environment variables are now meant to be in /etc/profile
. Their statement "(in older versions of Debian, also /etc/environment)" is vague, and is in the context of locales.
A quick grep through /etc/pam.d
shows:
root@box:/etc/pam.d# grep pam_env.so *
atd:auth required pam_env.so
cron:session required pam_env.so
cron:session required pam_env.so envfile=/etc/default/locale
login:session required pam_env.so readenv=1
login:session required pam_env.so readenv=1 envfile=/etc/default/locale
sshd:auth required pam_env.so # [1]
sshd:auth required pam_env.so envfile=/etc/default/locale
su:session required pam_env.so readenv=1
su:session required pam_env.so readenv=1 envfile=/etc/default/locale
Those config lines are additive, and as the first is missing envfile
, it thus defaults to /etc/environment
.
All of this, of course, relies on whatever binary you're using (crond
, login shells etc) are compiled against PAM.
Finally, this implies that other systems using PAM (eg RedHat), behave the same, as can be seen in it's respective manpage.