在亚马逊 EC2 上破坏了我的 /etc/sudoers 文件

Pro*_*ger 7 linux sudo amazon-ec2

我使用 vim /etc/sudoers 编辑了我的 Linux Amazon EC2 实例并尝试将另一个帐户添加到列表中。我现在意识到这是一个可怕的错误。我不能再从任何帐户 sudo (这意味着我不能再次编辑文件)并且我没有 root 帐户密码。我能做些什么来纠正这个问题吗?

谢谢。

cyb*_*x86 19

希望您使用的是 EBS 根卷。如果是这样,解决方案并不太难。

本质上,您将 EBS 卷附加到另一个实例进行更改,然后将其重新附加到原始实例:

  • 停止(不终止)原始实例
  • 分离 EBS 卷
  • 启动另一个实例
  • 将您当前的 EBS 卷附加到新实例
  • 通过 SSH 连接到新实例,挂载 EBS 卷并进行所需的更改
  • 卸载 EBS 卷(例如umount -d /dev/xvdhumount -d /dev/sdh
  • 从新实例中分离 EBS 卷并将其附加为/dev/sda1旧实例的根卷(例如)
  • 启动旧实例
  • 如果一切正常,终止新实例

这样做的原因是,在新的新实例上,您拥有适当的权限 - 它的根卷完好无损 - 这使得原始实例中的 sudoers 文件只是您可以编辑的另一个文件。

不幸的是,如果您有一个实例存储根卷,您可能无法解决问题,并且必须恢复到您之前创建的 AMI 作为备份。