Sudoers-Datei durcheinander

Sudoers-Datei durcheinander

Ich habe versehentlich einen Fehler in der sudoersDatei gemacht und kann ihn jetzt nicht beheben, da beim Versuch, die Datei zu ändern, die Meldung „Zugriff verweigert“ angezeigt wird. Wenn ich sudodie Datei öffne, wird ein Syntaxfehler angezeigt und es wurden keine gültigen sudoersQuellen gefunden, und der Befehl wird nicht ausgeführt. Ich verwende Raspbian, eine Debian-Variante.

Weiß jemand, wie man aus diesem Dilemma herauskommt?

Antwort1

  1. Wenn Sie das Kennwort kennen root(und es festgelegt ist), können Sie es verwenden, suum es zu öffnen rootund zu bearbeiten /etc/sudoers.
  2. Wenn sich Ihr Root-Dateisystem auf einer SD-Karte befindet, können Sie es herausschieben und /etc/sudoersauf einem PC oder einem anderen Gerät bearbeiten, sofern es über einen Kartenleser verfügt.
  3. Sie können die U-Boot-Befehlszeile (Bootloader) aufrufen (normalerweise durch Drücken einer Taste auf der Tastatur oder über UART) und 1der Linux-Kernel-Befehlszeile hinzufügen, um in den Einzelbenutzermodus zu wechseln. In diesem Modus können Sie rootbearbeiten /etc/sudoers. Siehe auchDas.

Antwort2

Sie müssen im Einzelbenutzermodus booten.

https://serverfault.com/questions/482079/debian-boot-to-single-user-mode

Als Root-Benutzer können Sie die Sudoers-Datei bearbeiten, um das Problem zu beheben. Ich empfehle dringend, den visudoBefehl in Zukunft zum Bearbeiten Ihrer Sudoers-Datei zu verwenden, um dies nicht noch einmal tun zu müssen, da Visudo vor dem Speichern eine Syntaxprüfung der Datei durchführt.

Antwort3

Wenn Sie sich auf einer Cloud-Instanz befinden, sind Sie in etwas größeren Schwierigkeiten.

Abhängig von der Distribution gibt es verschiedene Techniken, aber wenn Sie Docker bereits installiert und ausgeführt haben, können Sie das Problem im Allgemeinen über einen Docker-Container beheben. Das liegt daran, dass der Docker-Dienst normalerweise als Root ausgeführt wird und alles, was mit einem bereitgestellten Volume innerhalb des Containers geschieht, als Root auf dem Host ausgeführt wird.

Auf dem Host:

docker run --rm -ti -v /etc:/usr/local/etc busybox sh

Die „Busybox“ ist einfach eine nette kleine Distribution, deren Download nicht lange dauert. Wenn Sie bereits ein Docker-Image haben, das eine Shell enthält, verwenden Sie einfach dieses.

Zum Docker-Container:

cd /usr/local/etc
vi sudoers

Möglicherweise haben Sie dem /etc/sudoers.d/Verzeichnis eine fehlerhafte Datei hinzugefügt. In diesem Fall entfernen Sie am besten einfach die Datei.

Wenn Sie den Container verlassen, ist dies sudoerneut möglich.

Wütend!

verwandte Informationen