我遇到了这个问题,因为我想通过在 /etc/environment 的 PATH 末尾添加另一个目录来为所有用户扩展 PATH 变量。
打开一个新的 shell 和一个新的登录都没有显示扩展的 PATH。
我发现 /etc/environment 上的保护设置为
-rw-r--r-- 1 root root 588 May 13 12:08 /etc/environment
将 /etc/environment 设置为可执行为我解决了这个问题。
我遇到了这个问题,因为我想通过在 /etc/environment 的 PATH 末尾添加另一个目录来为所有用户扩展 PATH 变量。
打开一个新的 shell 和一个新的登录都没有显示扩展的 PATH。
我发现 /etc/environment 上的保护设置为
-rw-r--r-- 1 root root 588 May 13 12:08 /etc/environment
将 /etc/environment 设置为可执行为我解决了这个问题。
该文件
/etc/environment
不打算作为程序执行,而是读取或获取,因此它不需要可执行权限,也不应该有。对于交互式 shell,该文件通常应该由 PAM 系统读取。例如,在 WSL2 中的 Ubuntu 22.04 上,它应该由
login
和读取sshd
。检查/etc/pam.d/
. 如果您没有在文本控制台或 SSH 上测试登录,请对其进行测试。为所有用户更改环境变量的更好方法是将
.sh
文件添加到/etc/profile.d/
. 这样,您可以将您的配置与发行版的系统文件分开,并防止升级期间可能出现的问题。这个问题中有更多细节:Setting PATH variable in /etc/environment vs .profile