How to run a cronjob as a specific user?

Better Stack Team
Updated on January 9, 2023

One of the features of Cron is the ability to run Cron jobs as a specific user. Sometimes you may even want to create a special user with limited privileges just to run Cron jobs. There are two methods how to run cronjob as a specific user.

Using system crontab

Every Cron has a system-wide crontab. The system crontab is located in /etc/crontab. Here, you can find scheduled system cronjobs. You can run a custom cronjob by adding a new line in the /etc/crontab file and specifying the user who will run the command as in the following example.

 
#m  h dom mon dow user      command
*   *  *   *   *  someuser  echo 'Hello world!'

This will echo Hello world! in the terminal every minute.

Using user crontab

The second approach is to create a user-specific crontab and schedule a cronjob in this crontab. First, log in as the select user.

 
su someuser

Then create or open user-specific crontab.

 
crontab -e

If the user doesn't have a crontab it will create a new one and ask you to select your preferred text editor. Select your text editor and proceed to the next step.

And finally, add a cronjob in this file.

 
#m  h dom mon dow  command
*   *  *   *   *   echo 'Hello world!'

This will echo Hello world! in the terminal every minute.

🔭 Want to get alerted when your Cron doesn't run correctly?

Go to Better Uptime and start monitoring them in 5 minutes.

Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

We are hiring.

Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.

Explore all positions →

Reliability is the
ultimate feature

Delightful observability tools that turn your logs & monitoring into a secret weapon for shipping better software faster.

Explore Better Stack