21

I have a couple of commands I want executed after the machine boots up. A user shouldn't have to log in or anything for them to run.

I found this great answer suggesting crontab with the @reboot keyword, however this will run as root, and I'd like to run as a specific user created for these "services" (not actual system services).

What are someways to achieve that same effect with any given user?

1
  • Try to run '$ su [username][command]' Jul 31, 2014 at 20:22

1 Answer 1

34

You could create a crontab for the specific user like so:

crontab -u <username> -e

Or more simply, you could just run crontab -e when logged in as that user.

Alternatively, you could prefix your command in your (root) crontab with sudo -u <username> to run the command as the specified user.

4
  • Thanks, I wasn't able to get it working with those. But I do now see that I can create a crontab for anyone. The commands wound up running fine as root with sudo. I didn't know I could use sudo there (was expecting it to fail waiting for a password). Jul 31, 2014 at 22:22
  • 2
    @Louis sudo does not require a password when you invoke it as root. Basically you're not gaining permissions but giving them up.
    – kraxor
    Aug 1, 2014 at 10:58
  • 1
    @kraxor - you could just run crontab -e when logged in as that user. i think this is not correct .
    – bhv
    Oct 20, 2016 at 4:07
  • Could the specific user has root permissions during the run?
    – alper
    Nov 19, 2020 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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