How set PATH for all users in Debian?
Solution 1:
The first place where PATH is set is /etc/login.defs
. There's a setting for root and a setting for everyone else.
Another place where you can define environment variables is /etc/environment
. These settings will apply to everyone (you can't write arbitrary shell code there).
A third place where you can define environment variables is /etc/profile
. There you can write arbitrary shell code. If you want a user-specific setting, there is the corresponding per-user file ~www-data/.profile
. But this will only apply to console interactive logins; in particular it won't apply to cron jobs unless they explicitly source /etc/profile
.
If you only need that PATH
setting in a user crontab, you can write it at the beginning of the crontab. Note that you need the full list (PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin
), you can't use a variable substitution (PATH=$PATH:/usr/local/zend/bin
won't work there).
Solution 2:
To set a path for all users except root, edit /etc/profile
or /etc/enviroment
. For root or an individual user edit their .bashrc
or .bash_profile
in their home directories, respectively. Add the PATH=$PATH:/new/location/
.