Verwenden von visudo zum Bearbeiten von Sudoern auf dem Mac

Ich habe es geschafft, die sudoers-Datei auf meinem Mac zu erstellen. z.B.

$ sudo visudo
>>> /etc/sudoers: syntax error near line 45 <<<
sudo: parse error in /etc/sudoers near line 45
sudo: no valid sudoers sources found, quitting

Also ging ich und holte die Standard-Sudoers-Datei von hier , loggte mich als root ein und kopierte sie von Documents nach /etc ... aber immer noch keine Freude.

Wenn ich versuche, 'visudo' mit root auszuführen, wird Sublime Text gestartet und ich sehe eine leere sudoers.tmp, von der ich verstehe, dass sie die Sperrdatei ist.

Wenn ich versuche, den Inhalt der heruntergeladenen sudoers-Datei mit Sublime in sudoers.tmp zu kopieren, erhalte ich den obigen Fehler.

Also, hat jemand eine Lösung dafür? Was sollte ich sehen, wenn ich den Befehl „visudo“, Sublime Text und sudoers.tmp ausführe?

vielen Dank, Georg

Ich nehme an, Sie verwenden bashals Shell. Versuchen Sie es EDITOR=nano visudoals root.
Das hat funktioniert!!! Vielen Dank. Ich musste sicherstellen, dass ich es als sudoers und nicht als sudoers.tmp gespeichert habe
Ich beantworte sie, damit Sie die Frage als beantwortet markieren können.
EDITOR=viwenn du masochistisch bist.

Antworten (2)

Wenn Ihr Editor visudonicht wie erwartet funktioniert, vielleicht weil Ihr Editor nicht richtig funktioniert, versuchen Sie, die EDITORUmgebungsvariable auf einen vernünftigen Wert zu setzen, und starten Sie dann visudo:

EDITOR=nano visudo

für sh, bash, dash, und kompatibel.

Ich habe folgendes export EDITOR="emacsclient -t"würde es überschrieben werden
Nur für diesen einen Aufruf

Ich bin heute auf dieses Problem gestoßen, und die obigen Informationen haben mir geholfen, aber ich wollte meinen Editor für andere Zwecke auf sublimieren lassen. Ich habe Folgendes zu meinem ~/.bash_profile hinzugefügt, was das Visudo-Problem löst, aber meinen Standardeditor für Git usw. nicht ändert.

alias visudo='EDITOR=vi sudo visudo'

Bei der Ausführung ändert sich der Editor für den folgenden Befehl in vi und Sie können die sudoers-Datei erfolgreich bearbeiten.

Sie können SUDO_EDITORstatt setzen, EDITORum dies zu vermeiden. Auch EDITOR=vi sudo visudo(ohne ein ;vor dem sudo) ändert den Wert der env-Variablen nur für diesen Befehl, nicht für die gesamte Shell.
Danke @Patrix, guter Tipp zu: Um meinen Alias ​​zu vereinfachen, habe ich meine Antwort oben bearbeitet, um dies widerzuspiegeln. Was Ihren anderen Tipp angeht, habe ich versucht, export SUDO_EDITOR='/usr/bin/vi'meine hinzuzufügen ~/.bash_profile, aber es schien den Befehl überhaupt nicht zu beeinflussen sudo visudo, meine EDITOR-Umgebungsvariable schien immer noch in Kraft zu sein, zumindest auf meinem Computer mit OSX 10.9.5.
Du hast Recht. SUDO_EDITOR funktioniert nur für sudo -e /path/to/file, nicht für visudo. Und sudo -e darf nicht zum Bearbeiten der sudoers-Datei verwendet werden, da in diesem Fall keine Syntaxprüfung durchgeführt wird.
Weder EDITOR noch SUDO_EDITOR funktionieren bei mir richtig. Ich benutze alias visudo='VISUAL=vim sudo visudo'stattdessen.