1

通过终端登录我可以很好地切换到 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 有什么想法吗?

4

2 回答 2

1

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

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

sudo "enter_your_command_to_be_run_as_root_here"
于 2014-07-03T11:54:59.443 回答
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/

于 2016-01-19T18:19:46.440 回答