通过终端登录我可以切换到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脚本中切换到root的想法吗?
答案 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/