Antworten:
Das Hinzufügen Defaults editor=/path/to/editorin die sudoers-Datei bewirkt, dass visudo den angegebenen Editor für Änderungen verwendet.
Wenn Ihr sudo-Paket mit --with-env-editor erstellt wurde, wie dies bei einigen Linux-Distributionen der Fall ist, können Sie die Umgebungsvariable EDITOR auch durch Ausführen von festlegen export EDITOR=/path/to/editor. Wird dies in der Befehlszeile ausgeführt, wird es zurückgesetzt, sobald diese Shell-Sitzung beendet wird. Wenn Sie die Variable in einem ~ / .bashrc- oder / etc / -Profil festlegen, bleibt die Änderung bestehen.
visudoehrt $VISUALund nicht $EDITOR?
--with-env-editor, was in letzter Zeit hier im Gedächtnis des Internets bedeutet. Außerdem hat das sudo-Paket vor einiger Zeit seine Standardeinstellung geändert, um vi als Standardeditor zu verwenden, was meines Erachtens mit einer Änderung des Verhaltens in Bezug auf die Akzeptanz von Umgebungsvariablen zusammenfiel. Ich habe keine klare Zeitleiste, wie, wann oder ob diese Ereignisse zu diesem Zeitpunkt in Beziehung zueinander stehen.
Folgende
alternatives(ursprünglich nur Debian und seine Forks, aber jetzt die meisten wichtigen Distributionen, IIUC).hat den Vorteil, dass
sudoerserst mit dem Standardeditor bearbeitensudohat nicht gebaut worden , mit--with-env-editorVon einer Kommandozeile:
sudo update-alternatives --config editorsudo visudo sollte jetzt den Editor Ihrer Wahl öffnen.
Ein normales Unix-Programm, das einen Editor aufrufen möchte, führt das Programm aus, dessen Name sich in der Umgebungsvariablen EDITORoder befindet. VISUALWenn die Variable nicht festgelegt ist, ist dies eine systemabhängige Standardeinstellung. Viele, aber nicht alle Programme prüfen beides EDITORund VISUAL; Die Unterscheidung ist längst überholt (wenn Sie einmal EDITORmit einem Fernschreiber und VISUALeinem „Glas“ -Terminal gearbeitet haben…), daher sollten Sie beide auf den gleichen Wert einstellen. Es gibt einige Meinungsverschiedenheiten darüber, ob der Inhalt der Variablen der vollständige Pfad zu einer ausführbaren Datei, ein nachgeschlagener Name für eine ausführbare Datei $PATHoder ein Shell-Snippet sein soll. Daher sollten Sie sich an einen Pfad zu einer ausführbaren Datei halten, die kein Shell-Metazeichen enthält. Die Standardeinstellung des Systems, wenn keine Variable festgelegt ist, ist traditionellvi, obwohl einige Distributionen dies zu einem neueren, freundlicheren Editor geändert haben, wie z nano.
visudoprüft beides VISUALund EDITOR(dies kann kompiliert werden, vermutlich, um root davon abzuhalten, einen Editor zu verwenden, dessen Sicherheit der Distributionshersteller nicht vertraut, aber selbst OpenBSD tut dies nicht).
Mit diesen Schritten kann ich den Editor unter Ubuntu 12.04 auf vi für visudo einstellen. Sie funktionieren wahrscheinlich für die meisten Distributionen:
Befehl ausgeben:
sudo visudo
Dies öffnet die sudoers-Datei in nano. In der Nähe der Spitze sehen Sie diese Linie:
Defaults env_reset
Fügen Sie die folgende Zeile unter der obigen Zeile hinzu:
Defaults editor=/usr/bin/vi
Speichern Sie die Datei und beenden Sie sie. Öffnen Sie visudo erneut als Standardbenutzer:
sudo visudo
Die sudoers-Datei wird jetzt in VI geöffnet.