我有一个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 /。