Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We need to have /usr/local/bin in cron's path for all users. Is there a way to set it system-wide, without needing to edit each individual user's crontab?

We've tried adding PATH to /etc/crontab:

# grep PATH /etc/crontab

But when users have this in their crontab:

$ crontab -l | grep PATH
* * * * * echo $PATH > /tmp/current_cron_path reveals that their path is still set to default:

$ cat /tmp/current_cron_path
share|improve this question
General hint: Writing "it didn't work" will not usually get you a useful reply. Always describe how exactly it didn't work, that is, exactly what did you do, and what exactly was the result. – sleske Jul 19 '10 at 10:14
Please note that relying on echo in your cron is possibly unreliable. – Oliver Salzburg Jun 12 '12 at 15:07

Setting the PATH variable should work in Ubuntu, how do you say it is not working ?

Refer #14: Linux Crontab: 15 Awesome Cron Job Examples

share|improve this answer
i updated the question, setting the PATH in an individual crontab did work, just the global change did not work – grosser Jul 21 '10 at 6:22

You can configure your PATH in crontab configuration file as shown in the first code except there. First specify the env variables, then specify jobs.

UPD: Due to fact that link is broken, here's an excerpt:


# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
share|improve this answer
does not work on ubuntu, even after restarting cron – grosser Jul 19 '10 at 7:01
@grosser: Well, it should. Please post your complete crontab (edit your answer), along with the output it produces and why you believe it does not work. Then we'll see... – sleske Jul 19 '10 at 10:06
Also note that the format of the VARIABLE=value lines is somewhat more restricted than in a shell script: Each assignment must be on a line of its own, and you may not use variables on the right-hand-side (e.g. PATH=$PATH:/bla will not work). – sleske Jul 19 '10 at 10:12
i updated the question, setting the PATH in an individual crontab did work, just the global change did not work – grosser Jul 21 '10 at 6:10
Try specifying PATH variables in each crontab where you need it. Probably it's done due to security issues. BTW, in ubuntu (I've checked) PATH is defined in /etc/crontab and /etc/cron.d/anacron in ubuntu. So it seems that it is not being inherited from /etc/crontab. Just try defining it in root's crontab (sudo crontab -e) – igorp1024 Jul 21 '10 at 14:53

If you're able to be root, can you try editing /etc/init.d/cron and changing the PATH there? I haven't tested this, but would be interesting to check.

share|improve this answer
did not seem to work, i just added PATH=xxx into /etc/init.d/cron but the * * * * * echo $PATH output was the same – grosser Aug 5 '10 at 7:21

I could not find a solution for this either. The closest I got to a decent solution is the following (taken from

  • Change the shell for your cron job and point it to a bash script. I.e., at the top of the cronjob, add: SHELL=/path/to/setup/cron.bash
  • In this shell script, load environment variables and specify other vars. Make sure to include the following 4 lines at the top. It resets the SHELL variable to bash, and executes a bash shell to run the cronjobs.

For example:

set -e

source /etc/environment
source /etc/profile
# restore SHELL env var for cron

# execute the cron command in an actual shell
exec /bin/bash --norc "$@"

Downside: this requires you to specify the SHELL=... at the top of every cronjob. Upside: you'll be using regular environment variables, and you won't have to worry about keeping variables consistent between cron and others

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.