Brach meine / etc / sudoers Datei auf Amazon EC2

7

Ich habe meine Linux Amazon EC2-Instanz mit vim / etc / sudoers bearbeitet und versucht, der Liste ein weiteres Konto hinzuzufügen. Mir ist jetzt klar, dass dies ein schrecklicher Fehler war. Ich kann von keinem Konto mehr sudo (was bedeutet, dass ich die Datei nicht erneut bearbeiten kann) und ich habe kein Passwort für das Root-Konto. Kann ich irgendetwas tun, um dies zu korrigieren?

Vielen Dank.

Progger
quelle
8
in Zukunft verwenden visudo(sorry - hilft jetzt nicht, ich weiß, aber es kann eine Wiederholung vermeiden).
ist das der Grund, warum das kaputt gegangen ist? Ist visudo der Weg, um diese Datei zu bearbeiten? danke ...
Progger
Es prüft auf Fehler und lässt Sie nicht speichern, wenn es kaputt ist. Es ist nur eine zusätzliche Sicherheitsmaßnahme, keine Anforderung.
5
Erwähnenswert ist, dass visudonur die Syntax der /etc/sudoersDatei überprüft wird , nicht jedoch die Logik. Sie können sich immer noch mit aussperren visudo. Lassen Sie eine Root-Sitzung geöffnet, bis Sie Ihre neue Konfiguration getestet haben.
Ladadadada

Antworten:

19

Hoffentlich verwenden Sie ein EBS-Root-Volume. Wenn ja, ist die Lösung nicht zu schwierig.

Im Wesentlichen hängen Sie das EBS-Volume an eine andere Instanz an, nehmen die Änderungen vor und ordnen es erneut der ursprünglichen Instanz zu:

  • Stoppen Sie die ursprüngliche Instanz (beenden Sie sie nicht)
  • Nehmen Sie das EBS-Volume ab
  • Starten Sie eine andere Instanz
  • Hängen Sie Ihr aktuelles EBS-Volume an die neue Instanz an
  • Stellen Sie SSH in die neue Instanz, mounten Sie das EBS-Volume und nehmen Sie die erforderlichen Änderungen vor
  • Hängen Sie das EBS-Volume aus (z. B. umount -d /dev/xvdhoder umount -d /dev/sdh)
  • Trennen Sie das EBS-Volume von der neuen Instanz und hängen Sie es als Root-Volume (z. B. /dev/sda1) der alten Instanz an
  • Starten Sie die alte Instanz
  • Wenn alles funktioniert, beenden Sie die neue Instanz

Der Grund dafür ist, dass Sie auf der neuen Instanz über die richtigen Berechtigungen verfügen - das Root-Volume ist intakt -, sodass die sudoers-Datei aus Ihrer ursprünglichen Instanz nur eine weitere Datei ist, die Sie bearbeiten können.

Wenn Sie über ein Root-Volume im Instanzspeicher verfügen, können Sie das Problem wahrscheinlich nicht beheben und müssen zu einem AMI zurückkehren, das Sie zuvor als Backup erstellt haben.

cyberx86
quelle
1
Als aktuelles Opfer muss ich Folgendes hinzufügen: Die neue Instanz muss sich in derselben Zone und Sicherheitsgruppe befinden (und es gibt keine einfache Möglichkeit, diese Einstellungen für erstellte Instanzen zu ändern. Sie müssen eine weitere erstellen, bis Sie sie erhalten es richtig)
prusswan
Dieselbe Zone - definitiv - EBS-Volumes können nicht (direkt) an Instanzen in anderen Zonen angehängt werden (obwohl Sie einen Snapshot und von dort aus ein neues Volume in derselben Region erstellen könnten). Die Sicherheitsgruppe sollte jedoch kein Faktor sein, der Sie daran hindert, ein EBS-Volume anzuhängen. Standardmäßig ermöglicht die Sicherheitszone den SSH-Zugriff, und das verwendete Schlüsselpaar wird auf dem Stammvolume der neuen Instanz gespeichert (muss also auch nicht mit der bereits vorhandenen Instanz übereinstimmen).
Cyberx86
Danke, das hat definitiv den Trick gemacht. Eine Sache, mit der ich ein bisschen Probleme hatte, war das Erhalten des richtigen Root-Volume-Namens beim erneuten Anschließen an die ursprüngliche VM. Der erste Schritt hier sollte darin bestehen, "das Gerät des Root-Volumes zu notieren, z. B. /dev/xvda", damit es später beim erneuten Anhängen verwendet werden kann.
Christopher Schultz
Wichtiger Hinweis hier wäre, dass die sudoers-Datei eine Berechtigung haben muss0400 . In meinem Fall konnte ich das Original nicht bearbeiten, also musste ich es umbenennen und ein neues erstellen. Nur das neue hatte nicht die richtigen Berechtigungen, also musste ich alles noch einmal durchgehen
Tomas
2

Es hängt davon ab, ob es sich um ein AMI- oder ein EBS-Root-Gerät handelt.

Wenn es sich um ein AMI handelt und Sie nicht über das Root-Passwort verfügen und das AMI keinen Root-SSH-Zugriff konfiguriert, können Sie nichts tun.

Wenn es sich um ein EBS-Stammverzeichnis handelt, können Sie es beenden und das Volume an eine andere Instanz anhängen (als zusätzliche Festplatte, nicht als Stammverzeichnis). Sie können dann entweder auf die Daten zugreifen oder die sudoers-Datei korrigieren und mithilfe des Volumes eine neue Instanz starten.

mgorven
quelle
0

Selbst wenn der Instanzspeicher ein Root-Volume ist, können Sie dieses Root-Volume einfach als sekundäres Volume in einer anderen Instanz (wie / dev / xvdh) anhängen, in einen Ordner einbinden und die Änderungen in sudoers vornehmen.

user225770
quelle
0

Folgendes habe ich getan, um dieses Problem zu lösen:

  1. Startete dieselbe Hardware Like-Instanz (die, die durcheinander gebracht wurde).
  2. Stoppen Sie die durcheinandergebrachte Instanz.
  3. ssh den kompletten Ubuntu-Ordner (der alle benötigten Dateien hatte).
  4. Startete den Replikatserver und stellte sicher, dass alles einwandfrei funktionierte (wir verwenden Mongo, MySQL, Tomcat und Java).
  5. Sobald ich fertig war, löste ich die elastische IP, die für die durcheinandergebrachte Instanz verwendet und an die Replikatinstanz angehängt wurde.

Voila Jetzt haben Sie eine neue laufende Instanz mit derselben Konfiguration und IP.

Zeitaufwand 30 Minuten.

rahul.tripathi
quelle