Ich möchte meine Sudo-Fähigkeiten auf meinem Mac ändern, um unter anderem Passwortabfragen beim Starten von Postgres zu vermeiden. Ich lese Michael Lucas 'Sudo Mastery und habe im Allgemeinen eine gute Vorstellung davon, wie man die Einträge ändert und visudo verwendet .
Michael weist jedoch darauf hin, dass das Bearbeiten von Sudoern , unabhängig davon, was Sie tun, von Natur aus unsicher ist und Sie von Ihrem Computer ausschließen kann. Und er tut alles, um die Leute zu warnen, einen Root-Login zu aktivieren, insbesondere unter macOS. Sobald Ihre sudoers- Datei in Ordnung ist und Sie dies mit einem Neustart bestätigt haben, können Sie den Root jederzeit deaktivieren.
Ich meine, wenn es nur das Kopieren der ursprünglichen Sudoers ist und dann, wenn die Dinge explodieren, sicher booten, zum Terminal gehen und die gesicherten Sudoers wiederherstellen , ist das in Ordnung. Aber ich möchte 110 % sicher sein, dass ich nicht ausgesperrt werde.
Hinweis: Ich könnte mich sehr gut zuerst an den Sudoern einer Linux-VM versuchen, aber ich möchte immer noch einen Fluchtweg haben.
Unter macOS Mojave, unter Berücksichtigung der verschiedenen absichtlichen Sicherheitsbeschränkungen von Apple in Bezug auf sicheres Booten und SIP, was sind die einfachsten Schritte, um eine temporäre Hintertür für die Root-Anmeldung zu erstellen ?
Es ist keine Hintertür erforderlich, tatsächlich ist wirklich nichts (nicht einmal ein Backup) erforderlich, um die sudoers- Datei zu bearbeiten. Sie können sich nicht von Ihrem Computer aussperren lassen.
Ein Backup ( sudo cp /etc/sudoers /etc/sudoers.bak
) ist jedoch bequemer, da Sie es einfach mit einem Einzeiler wiederherstellen können.
Gründe dafür:
Getestet in einer Mojave-VM von:
nano
und Auskommentieren der Root- und %admin- Zeile, Ändern des Besitzes von Sudoern auf 501:staff und Erstellen von 777Nachweisen:
rm sudoers
) war ein Szenario 2. ( nano/chmod/chown sudoers
) war ein anderes Szenario.Mit gebührendem Respekt vor den anderen Leuten, die bisher Vorschläge gemacht haben, bieten sie weitaus kompliziertere Ideen als nötig.
Hier ist die einfache Wahrheit: Ab mindestens 10.11 müssen Sie Ihre /etc/sudoers
Datei nicht mehr anfassen. Keiner. Lass es einfach in Ruhe.
Schauen Sie sich das Ende der /etc/sudoers
Datei an und Sie werden diese Zeilen sehen:
## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d
Das bedeutet, dass Sie Dateien einfügen /etc/sudoers.d/
und sudo
lesen können , als wären sie in der Hauptdatei, sudoers
ohnesudoers
jemals die offizielle Datei berühren zu müssen .
(In einigen Versionen von macOS müssen Sie den Ordner möglicherweise über erstellen, sudo mkdir /etc/sudoers.d/
aber in neueren Versionen ist er bereits vorhanden.)
Sie können die Datei wie folgt erstellen/bearbeiten:
sudo visudo -f /etc/sudoers.d/foo
Wenn Sie den Editor verlassen, visudo
wird die Syntax für Sie überprüft, aber selbst wenn Sie die Warnungen ignorieren und es trotzdem speichern, sudo
wird jede Datei ignoriert, /etc/sudoers.d/
die nicht die richtige Syntax hat, aber Ihre Hauptdatei sudoers
bleibt intakt und funktioniert.
Sie können ausführen sudo visudo -c
, um die Syntax beliebiger/aller sudoers
Dateien zu überprüfen und um anzuzeigen, dass sie gelesen/eingeschlossen werden.
Dateien in /etc/sudoers.d/
sollten Root gehören, sie sollten chmod 440
keine Dateierweiterung haben (dh „foo“ ist ok, aber nicht „foo.txt“). Wenn Sie die Datei damit erstellen, visudo
werden automatisch die richtigen Berechtigungen erteilt.
(Oh, und Sie müssen es auf einem Mac nicht aktivieren root
. Ich benutze seit 2003 einen und habe alle möglichen seltsamen Sachen gemacht, aber ich habe ihn nie gebraucht.)
Wenn Sie es jemals schaffen, Ihre Datei zu vermasseln /etc/sudoers
, können Sie BBEdit verwenden , um die Datei zu bearbeiten. Es wird Sie nach Ihrem Admin-Passwort fragen, aber sobald es eingegeben wurde, kann es die Datei bearbeiten und die anstößige Zeile entfernen. Aber Sie sollten die Datei trotzdem niemals bearbeiten /etc/sudoers
.
macOS ist in dieser Hinsicht etwas sicherer als die meisten Unix-Betriebssysteme, da es Pfade zum Rooten hat, die nicht von sudo
. Wenn Sie /etc/sudoers durcheinanderbringen, gibt es mehrere Möglichkeiten zur Wiederherstellung (auch ohne vorherige Vorbereitung, abgesehen von der Sicherung von /etc/sudoers):
Führen Sie das Verzeichnisdienstprogramm aus (es ist in /System/Library/CoreServices/Applications versteckt, aber Spotlight kann es finden). Klicken Sie auf das Vorhängeschloss und authentifizieren Sie sich, wählen Sie dann Bearbeiten > Root-Benutzer aktivieren und geben Sie ein Root-Passwort ein. Wenn Sie mit root fertig sind, können Sie es auf die gleiche Weise deaktivieren.
Sie können AppleScript verwenden, do shell script ... with administrator privileges
um Shell-Befehle als root auszuführen. Öffnen Sie /Applications/Utilities/Script Editor und geben Sie etwa Folgendes ein:
do shell script "cp /etc/sudoers.bkp /etc/sudoers" with administrator privileges
... und drücken Sie die Schaltfläche Ausführen (nach rechts zeigendes Dreieck) in der Symbolleiste. Authentifizieren Sie sich, wenn Sie dazu aufgefordert werden.
Dann gibt es noch die einfache und universelle Methode: Bevor Sie mit /etc/sudoers herumspielen, führen Sie aus, sudo -s
um eine Root-Shell zu öffnen, und lassen Sie sie geöffnet , damit Sie sie bei Bedarf zum Wiederherstellen verwenden können. Natürlich wird es einen Neustart nicht überleben, aber Sie können vor dem Neustart grundlegende Tests an Ihren neuen /etc/sudoers durchführen.
Fahrrad
Fahrrad
JL Peyret
Fahrrad
kein Hang