在 AWS 上运行 sudo chmod -R 777 /etc 后未找到有效的 sudoers 源

在 AWS 上运行 sudo chmod -R 777 /etc 后未找到有效的 sudoers 源

正如我所说,我在 Amazon Web Services 上做了一件愚蠢的事情。

sudo chmod -R 777 /etc`

使用 sudo 时会出现以下情况:

sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

现在我在网上发现了这一点:https://askubuntu.com/a/162889/421314

pkexec chmod -R 755 /etc`

但它需要我的超级用户密码或类似的东西。我的 Ubuntu 用户密码不起作用...

pkexec chmod -R 755 /etc
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/bin/chmod' as the super user
Authenticating as: Ubuntu (ubuntu)
Password: 
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
This incident has been reported.

该怎么办?

答案1

简单回顾一下我为了恢复所做的事情:

-- 基本上在这里https://forums.aws.amazon.com/thread.jspa?messageID=581788

停止有问题的实例。

不终止它。那么它就消失了。

对根卷进行快照(以防万一进行备份)。

从实例中分离根卷。(记下挂载点,例如 /dev/sda1)

启动新的临时实例或使用现有的 Linux 实例。

您无法影响在哪个可用区创建它。尽管这在以后很重要。

将根卷作为辅助卷附加并安装到临时实例。

由于您只能在同一个可用区域中执行此操作,因此您可能必须从快照中生成一个新卷,在临时实例所在的可用区域中。

修复 sudoers 文件

这是迄今为止最简短的建议版本。

您必须安装该卷才能访问它。

首先,您必须找出系统为卷指定的名称lsblk。该名称应与 AWS 中先前的挂载点相对应,但更改为 xvda1。例如,sda1 更改为 xvda1。

然后

sudo mkdir /media/new/_yourName_
sudo mount /dev/_yourFoundPartition_ /media/new/_yourName_

现在它应该在/Volumes

修复 sudoers 文件或写权限。

停止临时实例

制作固定卷的快照。

分离卷。

umount -d /dev/_yourFoundPartition_

使用之前记下的挂载点将卷重新附加到已停止的卷。

正如我之前所说,您最有可能遇到的是可用区问题。您可能必须拍摄固定卷的快照,并在旧实例的可用区中生成新卷。

启动实例。

最后我无法再通过 SSH 进入机器。所以我最终将 DNS 更改为临时实例。并将卷附加为主卷。

但请记住,您在处理不同的可用区域、安装和卸载卷以及恢复所有内容时会遇到麻烦。

http://www.cyberciti.biz/faq/mount-drive-from-command-line-ubuntu-linux/ http://ubuntuforums.org/showthread.php?t=1775679 https://forums.aws.amazon.com/thread.jspa?messageID=544552

它并不像短文中写的那样是一次快乐的旅程。

编辑:发现了一个很棒的 AWSers 视频https://www.youtube.com/watch?v=_P29ZHu_feU。 :)

祝你好运!!

相关内容