Linux rundeck-切换到作业脚本中的根用户
通过终端登录,我可以切换到root用户:Linux rundeck-切换到作业脚本中的根用户,linux,amazon-ec2,rundeck,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,但同样的情况
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的想法?这是预期的行为。 您正在通过“sudo-s”运行shell,然后没有离开/退出它!所以它永远在等待一些不会发生的事情 您可能可以添加'sudo'作为脚本的高级选项(其中显示“使用解释器或前缀运行脚本。例如:sudo,time:”)。 但它将以root用户身份运行整个脚本。 如果您只想以root用户身份运行特定命令,只需在命令前面加上sudo,如下所示:
sudo "enter_your_command_to_be_run_as_root_here"
在大多数linux发行版上,输入以Sudo为前缀的命令将产生以下错误
sudo: sorry, you must have a tty to run sudo
通过运行“visudo”并注释掉默认行或从默认行中删除“Requiredty”,可以在不使用tty的情况下启用sudo
详情可在此找到: