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