我有一个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.有一个root设置和其他人的设置.
另一个可以定义环境变量的地方是/ etc / environment.这些设置将适用于每个人(你不能在那里写任意shell代码).
您可以定义环境变量的第三个位置是/ etc / profile.在那里你可以编写任意shell代码.如果您需要特定于用户的设置,则会有相应的每用户文件~www-data / .profile.但这仅适用于控制台交互式登录;特别是它不适用于cron作业,除非他们明确地源/ etc / profile.
如果您只需要在用户crontab中使用该PATH设置,则可以在crontab的开头编写它.请注意,您需要完整列表(PATH = /usr/local / bin:/usr/bin:/ bin:/usr/local / zend / bin),您不能使用变量替换(PATH = $PATH:/usr/local / zend / bin不能在那里工作).