简体   繁体   中英

rundeck - switch to root user in job script

Logging via terminal I can switch to root user fine:

ubuntu@ip-10-0-0-70:~$ sudo -s
root@ip-10-0-0-70:~# whoami
root

So I created in rundeck a job script with this:

whoami;
echo "1st step";
sudo -s;
echo "2nd step";

And when I run this, it prints:

ubuntu
1st step

After print '1st step' it get stucked forever. Seems a problem with sudo -s command.

  • tried sudo -i but the same happens
  • tried sudo su - root but the same happens
  • rundeck is logging as ubuntu user, me too

any idea to switch to root in rundeck script?

This is the expected behaviour. You are running a shell via 'sudo -s' and then not leaving/exiting it ! So it waits forever for somethig that won't come.

You can probably add 'sudo' as an Advanced option of your script (where it says "Run script with an interpreter or prefix. Eg: sudo, time:"). But it will run your whole script as root. If you just want a specific command to be run as root , just prefix your command with sudo as so:

sudo "enter_your_command_to_be_run_as_root_here"

Entering the command prefixed by Sudo will generate the following error on most linux distributions.

sudo: sorry, you must have a tty to run sudo

You can enable sudo without tty by running 'visudo' and commenting out the defaults line or removing 'requiretty' from the defaults line.

Details can be found here:

http://www.cyberciti.biz/faq/linux-unix-bsd-sudo-sorry-you-must-haveattytorun/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM