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

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

如何将/usr/local/zend/bin到PATH中,以便www-data可以执行/usr/local/zend/bin

PATH设置的第一个位置是/etc/login.defs 。 有一个设置为其他人的根和设置。

另一个可以定义环境variables的地方是/etc/environment 。 这些设置将适用于每个人(你不能在那里写任意的shell代码)。

您可以定义环境variables的第三个地方是/etc/profile 。 在那里你可以写任意的shell代码。 如果你想要一个特定于用户的设置,则有相应的每个用户文件~www-data/.profile 。 但是这只适用于控制台交互式login; 特别是它不会适用于cron作业,除非他们明确地获取/etc/profile

如果您只需要用户crontab中的PATH设置,则可以在crontab的开始处编写它。 注意你需要完整的列表( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin ),你不能使用variablesreplace( PATH=$PATH:/usr/local/zend/bin不会在那里工作)。

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