I have few bash scripts which are adding to cron jobs with specified timing, but it needs to be executed as root user. I am trying to run those scripts i.e., crob jobs but it needs root user permission, since I am running this jobs in ubuntu ec2 instance where root user is restricted. What would be the work around to run those scripts as root user.
There are several possibilities:
1) add the script(s) to the crontab of root. To do this you have to do
sudo su - or
su - to become root, then add the cron jobs by using
2) allow a non-root user to use a crontab, and add the cron job to that user’s crontab , by using
and set the set-uid flag of your script and change ownership to root, so it will execute as root
chmod +s scriptname; chown root scriptname
You can make a script execute as root by using the setuid flag, which makes a script run as its owner:
chmod +s yourscript chown root yourscript
yourscript run whatever command you want to run as root.
Note that with this method, any user can run the script.
Basile is right with his comment. If you want to run something as
root in Ubuntu, use
If you want to execute a script (or some commands) automatically with superuser rights without having to type in a password, run
to edit the sudoers file. To make
sudo stop asking for a password for a specific script (or command) insert
username ALL = NOPASSWD: /path/to/script
username is the name of the user calling sudo.