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

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

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

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

答案1

设置 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在那里不起作用)。

答案2

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

答案3

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

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

然后重新登录。

相关内容