rundeck - 在作业脚本中切换到root用户

时间:2014-06-18 14:51:57

标签: linux amazon-ec2 rundeck

通过终端登录我可以切换到root用户:

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

所以我在rundeck中创建了一个带有这个的作业脚本:

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

当我运行它时,会打印出来:

ubuntu
1st step

印刷后的第一步'它永远被卡住了。似乎sudo -s命令存在问题。

  • 尝试了sudo -i,但同样的情况发生了
  • 尝试了sudo su - root,但同样的情况发生了
  • rundeck正在以ubuntu用户身份登录,我也是

在rundeck脚本中切换到root的想法吗?

2 个答案:

答案 0 :(得分:2)

这是预期的行为。 您正在通过'sudo -s'运行shell,然后不离开/退出它!所以它永远等待一些不会来的东西。

您可以添加'sudo'作为脚本的高级选项(其中显示“使用解释器或前缀运行脚本。例如:sudo,time:”)。 但它将以root身份运行整个脚本。 如果您只想以root身份运行特定命令,只需在命令前添加sudo,如下所示:

sudo "enter_your_command_to_be_run_as_root_here"

答案 1 :(得分:0)

输入以Sudo为前缀的命令将在大多数Linux发行版上生成以下错误。

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

你可以通过运行'visudo'并注释掉默认行或从默认行中删除'requiretty'来启用没有tty的sudo。

详情可在此处找到:

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