![ubuntu 10 始终为所有用户添加路径变量](https://linux22.com/image/546531/ubuntu%2010%20%E5%A7%8B%E7%BB%88%E4%B8%BA%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%E6%B7%BB%E5%8A%A0%E8%B7%AF%E5%BE%84%E5%8F%98%E9%87%8F.png)
我可以在哪里将路径添加到所有用户、所有 shell 始终可用的路径中。在这种情况下,我希望 /opt/grails/bin 始终可用,即使以 jenkins 中的 tomcat 用户身份运行也是如此。
有 6 个以上的文件可以将其粘贴到其中,但是在我多年的软件开发生涯中,我偶尔会处理 Linux 系统管理任务,却找不到一个清晰的解释来说明您在哪里做这件事,
export PATH=$PATH:/opt/grails/bin
并且让每个用户、每种类型的 shell 都能在所有时间使用它。
如果这很重要的话,我在使用 Ubuntu 10.10。
谢谢
答案1
通常是 /etc/profile(由 bash、dash、ksh 及其“sh”模式读取)。
对于系统用户,您可以在 /etc/environment 中声明单个变量。这不是一个好的做法,但它有效(我曾经将它用于 JAVA_HOME 等)。
PATH 的主要问题是它对于系统用户和系统超级用户来说应该有所不同。因此,我会尝试修补 /etc/profile(debian/ubuntu 的方式是将脚本放入 /etc/profile.d/),而不是 /etc/environment 中的单个变量。
一行导出是一个 bashism,请检查 /etc/profile 的第一行以获取可移植语法(以便与 /bin/sh、dash 等一起使用)。
该解决方案不适用于 csh、tcsh 和类似的 shell,但适用于 bourne 之类的 shell。
在 ubuntu 上,您可以研究 PAM,它有一些关于环境和 PATH 的内容,但它更多的是关于登录而不是 shell 初始化。
更新: 要使用 PAM(su、sudo 等),请尝试:/etc/login.defs 可能是您需要的单个文件。