如何为Debian中的所有用户设置PATH?


25

我有一个Debian Lenny服务器,我希望www-data用户/usr/local/zend/bin在其PATH中使用它,因此它可以在cron中执行脚本,如www-data

如何添加/usr/local/zend/bin到PATH,以便www-data可以在中执行文件/usr/local/zend/bin

Answers:


40

设置PATH的第一个位置是/etc/login.defs。有一个root设置,其他所有设置。

可以定义环境变量的另一个地方是/etc/environment。这些设置将适用于所有人(您不能在此处编写任意的shell代码)。

可以定义环境变量的第三位是/etc/profile。在那里您可以编写任意的shell代码。如果需要特定于用户的设置,则有相应的每用户文件~www-data/.profile。但这仅适用于控制台交互式登录。特别是它不适用于cron作业,除非它们明确注明来源/etc/profile

如果仅PATH在用户crontab中需要该设置,则可以在crontab的开头写入它。请注意,您需要完整的列表(PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin),不能使用变量替换(PATH=$PATH:/usr/local/zend/bin在此无效)。


----如何重新加载例如/etc/login.defs?
MrCalvin '17

@MrCalvin通过登录。
吉尔“SO-停止作恶”

1
有什么原因/etc/login.defs会被忽略吗?我已经更新,ENV_PATH并且在加载.bashrc时回显$ PATH。在中间的某个位置,它正在更改,或者由于显示旧值而未更新。我已经重新启动计算机-事实并非如此。
安南

@Annan机会是它正在某个地方被更改。请注意,我的答案写于systemd之前的2010年;如果您的系统使用systemd,则它可能有自己的方式来定义PATH其他方式或替代其他方式。
吉尔斯(Gilles)'所以

8

要为除root以外的所有用户设置路径,请编辑/etc/profile/etc/enviroment。对于root用户或个人用户,分别编辑其.bashrc.bash_profile在其主目录中。添加PATH=$PATH:/new/location/


1

要为所有用户简单地设置var而不给您profile增加负担,您可以在/etc/profile.d目录中添加自己的小脚本,如下所示:

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

然后重新登录。


1

纳米/ etc / profile

将这些行添加到文件末尾:

导出JAVA_HOME = / opt / jdk-12.0.1

出口MAVEN_HOME = / opt / apache-maven-3.6.1

导出M2_HOME = / opt / apache-maven-3.6.1

出口M2 = / opt / apache-maven-3.6.1 / bin

导出PATH = $ JAVA_HOME / bin:$ M2:$ PATH

保存文件。重新启动或使用以下命令:

来源/ etc / profile

测试您的设置:

回声$ JAVA_HOME

javac --version

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.