Ich habe es geschafft, die sudoers-Datei auf meinem Mac fehlerhaft zu machen. 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 holte ich mir die Standard-Sudoers-Datei von hier , loggte mich als root ein und kopierte sie von Documents nach /etc.
Wenn ich versuche, 'visudo' mit root auszuführen, wird Sublime Text gestartet und ich sehe eine leere sudoers.tmp, die meines Wissens die Sperrdatei ist.
Wenn ich versuche, den Inhalt der heruntergeladenen sudoers-Datei mit Sublime in die Datei sudoers.tmp zu kopieren, wird der obige Fehler angezeigt.
Hat jemand eine Lösung dafür? Was soll ich sehen, wenn ich den Befehl 'visudo', Sublime Text und sudoers.tmp ausführe?
Vielen Dank, George
bash
als Shell verwenden. Versuchen Sie esEDITOR=nano visudo
als root.EDITOR=vi
wenn du masochistisch bist.Antworten:
Wenn Ihr
visudo
nicht wie erwartet funktioniert, möglicherweise weil Ihr Editor nicht richtig funktioniert, versuchen Sie, dieEDITOR
Umgebungsvariable auf einen vernünftigen Wert zu setzen, und starten Sie dannvisudo
:für
sh
,bash
,dash
, und kompatibel.quelle
Ich bin heute auf dieses Problem gestoßen, und die obigen Informationen haben mir geholfen, aber ich wollte, dass mein Editor für andere Zwecke auf Erhabenheit eingestellt ist. Ich habe das Folgende zu meinem ~ / .bash_profile hinzugefügt, was das Visudo-Problem behebt, aber meinen Standard-Editor für Git usw. nicht ändert.
Bei der Ausführung wird der Editor für den folgenden Befehl in vi geändert, und Sie können die sudoers-Datei erfolgreich bearbeiten.
quelle
SUDO_EDITOR
anstatt diesEDITOR
zu vermeiden. AuchEDITOR=vi sudo visudo
(ohne ein;
vor demsudo
) ändert den Wert der env-Variablen nur für diesen Befehl, nicht für die gesamte Shell.export SUDO_EDITOR='/usr/bin/vi'
zu meinem hinzuzufügen~/.bash_profile
, aber er schien densudo visudo
Befehl überhaupt nicht zu beeinflussen. Meine Umgebungsvariable EDITOR schien immer noch wirksam zu sein, zumindest auf meinem Computer, auf dem OSX 10.9.5 ausgeführt wird.sudo -e /path/to/file
, nicht fürvisudo
. Undsudo -e
darf nicht zum Bearbeiten der sudoers-Datei verwendet werden, da in diesem Fall keine Syntaxprüfung durchgeführt wird.alias visudo='VISUAL=vim sudo visudo'
stattdessen.