为什么 /etc/environment 在 Ubuntu 22.04 中不可执行?

为什么 /etc/environment 在 Ubuntu 22.04 中不可执行?

我遇到这个问题是因为我想通过在 /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 变量

相关内容