我想更改特定用户使用的临时目录(jenkins
在我的例子中)。
问题是,这需要对以 Jenkins 用户身份运行的任何进程有效,并且更改它.profile
不应该起作用,因为这些是非交互式登录。
答案1
在大多数系统上,您可以在文件中设置环境变量~/.pam_environment
,它们将应用于所有登录方法,甚至是那些不启动登录 shell 并因此不加载.profile
.该文件由 PAM 模块读取pam_env
,即 PAM 配置文件/etc/pam.conf
或/etc/pam.d/XXX
用于登录用户的服务应提及该pam_env
模块。
的语法~/.pam_environment
是VARIABLE=VALUE
每行一个。您不能使用任何 shell 语法,例如引用或引用其他变量。在你的情况下,你会放一行像
TMPDIR=/somewhere/tmp-for-builds