visudo
来编辑sudoers文件时,脚本没有检查问题,并且我在sudoers
文件中引入了一些错误的编辑,因此根本无法使用sudo。 (我知道我做了一件非常糟糕的事情,应该使用了类似的东西)问题:无论如何,我是否可以从此错误中恢复,还是必须销毁VM并从此开始用新的刮擦吗?
#1 楼
用户数据如何?我相信添加“#cloud-boothook”允许强制用户数据在每次重启时运行。
#cloud-boothook
#!/bin/bash
echo 'test' > /home/ec2-user/user-script-output.txt
如果是这样,您可以希望修复sudo脚本...或安装/添加AWS运行命令配置https://aws.amazon.com/blogs/aws/new-ec2-run-command-remote-instance -scale-management /
要确定它是否是EBS驱动器,可以分离并修复然后重新连接到原始系统上。虽然有点痛苦。
#2 楼
通常,要从此类错误中恢复,就需要编辑引导加载程序以强制使用root shell。由于您无法物理访问(非物理)计算机,因此情况有所不同。如果这是EBS引导驱动器,则可以尝试将其拆下并固定在另一台计算机上,然后重新附加。
这是一个很好的机会,了解为什么对所有内容使用配置管理工具很有用:如果这样做,则只需几分钟和一个命令即可替换实例。
评论
在某些情况下,无法将分离的根卷重新附加到同一台计算机。通过创建分离卷的快照(在从实例中将其删除之前或之后)和该快照中的卷可以避免这种情况。
–chupasaurus
17年7月27日在6:40
#3 楼
如果您知道root密码,通常可以键入“ su”切换到超级用户。然后,您可以编辑sudoers文件以修复sudo。评论
我知道,但是我从未为根帐户分配密码,因此我的问题是...
–阿多尼斯
17年7月27日在7:33
#4 楼
您需要使用su
命令具有root用户访问权限,因为sudo
似乎不可用,然后进行适当的更改。现在最重要的一点是:总是使用visudo编辑sudoers文件
为什么?它会告诉您进行更改后是否存在任何错误,从而防止混乱
sudo
访问。要解决损坏的
sudo
,请遵循本指南。*在虚拟计算中可能无法实现。
#5 楼
分离根卷,将其附加到正在运行的实例,然后还原该卷中的sudoers文件。分离卷并重新连接到有问题的实例,然后重新启动它。
这应该起作用。
评论
您可以下载一些样本sudoers文件并使sudoers起作用。@KlwntSingh是的,但是无法访问sudo命令,ec2-user无法执行任何root命令,这是问题的核心(也许这很令人困惑!)