Die sudoers-Datei wurde geändert und kann nicht mehr geöffnet werden. Ich kann keine Datei mit root öffnen

8

Ich habe die Einstellungen in der Sudoers-Datei mit geändert

sudo visudo 

und vermasselt es. Wenn ich jetzt versuche, es erneut zu tun oder eine Datei mit sudo zu öffnen, kann ich sie nicht mehr öffnen und erhalte die folgende Fehlermeldung:

>>> Sudoers-Datei: Syntaxfehler, Zeile 7 

Was jetzt?

Gibt es eine Möglichkeit, dieses Problem zu beheben (um die Einstellungen zurückzusetzen), oder muss ich eine neue Kopie von Linux installieren?

Der Grund, warum ich das alles bekommen habe, ist, dass ich "Q" gedrückt habe, während es mir sagte, dass es einen Fehler gab, der sehr dumm von mir war.

Vielen Dank.

BEARBEITEN

Meine Sudoers-Datei unterscheidet sich nicht von der normalen Sudoers-Datei. Ich habe gerade die Zeile timestamp_timeout = 0 in diese Datei eingefügt und all diese Probleme sind aufgetreten. Ich habe getan, was James vorgeschlagen hat, und diese Zeile sogar entfernt (timestamp_timeout = 0). Ich habe die angeforderte Dateiberechtigung in 0440 geändert und dann normal gestartet. Dann erhalte ich die gleiche Fehlermeldung

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
wie oben.

Was sollte ich jetzt tun ??

EDIT 2 Gelöst

Das habe ich getan:

  1. Booten Sie mit livecd
  2. Entfernen Sie die alte Sudoers-Datei
  3. Neue sudoers-Datei erstellt und alles in diese Datei kopiert, dh minimale Konfigurationseinstellungen, die ich zum Glück in einer anderen Datei gespeichert hatte
  4. Dateiberechtigung in 0440 geändert
  5. Starten Sie normal von der Festplatte neu

Hurra !!

Karlo
quelle
Sie können den Inhalt Ihrer sudoers-Datei auf www.pastebin.com einfügen und uns einen Blick darauf werfen lassen, wahrscheinlich auf dem schnellsten Weg.
Andrioid
Ich würde nach fehlenden # in Kommentaren, fehlenden Doppelpunkten, Gleichheitszeichen, Backslashes mit
Zeilenfortsetzung

Antworten:

8

Angenommen, Sie haben dem Root-Benutzer kein Passwort gegeben, dann können Sie dies am einfachsten mit einer Live-CD wie Knoppix beheben . Boot der CD. Hängen Sie die lokale Disc ein, bearbeiten Sie die Datei, heben Sie die Bereitstellung der Disc auf und starten Sie den Computer neu.

James
quelle
6

Starten Sie den Computer einfach im Einzelbenutzermodus , indem Sie die folgenden Schritte ausführen:

  1. Starten Sie neu
  2. Wenn Grub startet, drücken Sie ESC (oder Escape).
  3. Drücken Sie 'e', ​​um die aktuelle Zeile zu bearbeiten
  4. Fügen Sie 'single' am Ende der Zeile hinzu, die 'linux' enthält.
  5. Booten (drücken Sie b)

Dadurch wird der Computer mit nur einem Benutzer, root, gestartet. Von dort aus folgen Sie diesen Schritten:

  1. / usr / bin / vim / etc / sudoers (oder verwenden Sie Nano, was für Sie möglicherweise einfacher ist), um das Problem zu beheben
  2. Wenn Sie sich des Problems nicht sicher sind, kopieren Sie das enthaltene Beispiel von sudoers aus "/ usr / share / doc / sudo / examples" (variiert) und fügen Sie dort natürlich Ihren Benutzer hinzu.
  3. Speichern Sie die Datei und beenden Sie Vim
  4. Neustart, viel Spaß!
Andrioid
quelle
Ich habe mich gefragt, wann es nach einem Passwort fragt, bevor es die Einzelbenutzer-Shell gibt.
James
Diese Methode funktioniert nicht für alle Distributionen. Da es sich um eine bekannte Hintertür handelt, erzwingen einige Distributionen eine Anmeldung, bevor Sie zu einer Root-Eingabeaufforderung gelangen. Es klingt so, als wäre das bei dir der Fall, James.
Telemachos
Wusste nicht, dass Distributionen damit angefangen hatten, arbeitete immer für mich in den guten alten Slackware-Tagen
Andrioid
Sie sollten die Verwendung von visudo über vim empfehlen: en.wikipedia.org/wiki/Visudo
3

James 'Idee, eine Live-CD zu verwenden (vorausgesetzt, das Root-Konto ist nicht aktiviert), ist gut. Ich würde ein paar Punkte hinzufügen.

  • Erstens könnten Sie Glück haben und eine Sicherungskopie der Datei / etc / sudoers wurde automatisch gespeichert, als Sie sie bearbeiteten. Checken Sie in / etc nach einer Datei ein, die so aussieht sudoers~ (Sie können cdin dieses Verzeichnis gehen und ls -A ohne Root-Rechte ausführen , auch wenn Sie die Dateien als normaler Benutzer nicht lesen oder bearbeiten können). Einige Editoren erstellen eine solche Sicherung, wenn überhaupt möglich, so können Sie eine haben, ohne es explizit erstellt zu haben.
  • Zweitens, wenn Sie keine Ahnung haben, wie die Datei bearbeitet werden soll, können Sie sie (oder den Bereich um Zeile 7) hier oder anderswo veröffentlichen. Obwohl die Datei selbst mit Sicherheit zu tun hat, enthält sie keine Passwörter, sodass das Veröffentlichen keinen unmittelbaren Schaden anrichtet.
  • Beachten Sie zum Schluss, dass eine Fehlermeldung wie die, die Sie gesehen haben, nicht unbedingt bedeutet, dass sich das Problem selbst buchstäblich in Zeile 7 befindet. Der Fehler befindet sich möglicherweise in Zeile 4, wurde jedoch sozusagen nur in Zeile 7 ausgelöst.
Telemachos
quelle
0

Drücken Sie zum Bearbeiten e. Auf diese Weise können Sie die Datei bearbeiten und die Fehler korrigieren.

Torandi
quelle
Wenn Sie nach Abschluss der Bearbeitung auf "e" klicken, wird der Fehler wieder angezeigt, damit Sie Ihre Fehler beheben können. Leider wird Ihnen dies nicht ausdrücklich erwähnt.
0

Verwenden Sie pkexec visudo oder pkexec vi / etc / sudoers. Für diejenigen unter uns, die keine Konsole oder keinen lokalen Zugriff auf den Server haben, um in Run Level 1 zu booten, oder über Root-Set (oder die verfügbaren Anmeldeinformationen / Zertifikate) verfügen, ist visudo besser wie es Fehlerprüfung in der Datei tut.

anon
quelle
Aber wie können Sie pkexecIhre Gebote abgeben, wenn Sie das Root-Passwort nicht kennen?
Scott