Answers:
在Debian / Ubuntu上是/ etc / environment
我不了解Red Hat。
/etc/environment
。另请参阅serverfault.com/a/584072/26218
有人回答说/etc/environment
Debian不再使用和/或不再使用它,这是错误的(从版本7开始)。
PAM实际上是pam_env(8)
通过默认的envfile
标志来读取文件的。联机帮助页还在“文件”部分下说明了该默认设置。
引用的Wiki(尤其是语言环境)仅声明基于语言环境的环境变量现在应位于中/etc/profile
。他们的陈述“(在Debian的旧版本中,也是/ etc / environment)”是含糊的,并且是在语言环境中。
快速grep /etc/pam.d
显示:
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
这些配置行是可加的,并且由于缺少第一行envfile
,因此默认为/etc/environment
。
当然,所有这些都依赖于您使用的任何二进制文件(crond
,登录shell等)都是针对PAM编译的。
最后,这意味着使用PAM的其他系统(例如RedHat)的行为相同,如在相应的联机帮助页中所示。
旁注:看一下Modules Environment。每当需要为数十或数百个用户提供复杂,版本化,可自我扩展的简明UNIX环境时,我都会使用此方法。它主要用于大型多用户HPC环境。仅将其用于一个特定变量肯定会对其过度设计,但是一旦您需要多个软件包及其环境,它就可以完成出色的工作。
/etc/enviroment
在上一个debian稳定版本中未使用。如Sorin S所说,建议是为此海豚创建自己的*.sh
文件/etc/profile.d/
。参见https://wiki.debian.org/EnvironmentVariables