Risposte:
L'aggiunta Defaults editor=/path/to/editor
nel file sudoers farà sì che visudo utilizzi l'editor specificato per le modifiche.
Inoltre, se il pacchetto sudo è stato creato con --with-env-editor, come è il default su alcune distribuzioni Linux, è anche possibile impostare la variabile di ambiente EDITOR eseguendo export EDITOR=/path/to/editor
. Eseguito dalla riga di comando, questo verrà ripristinato non appena termina quella sessione della shell, impostando la variabile in un profilo ~ / .bashrc o / etc / farà sì che la modifica continui.
visudo
onora $VISUAL
e $EDITOR
?
--with-env-editor
, recentemente qui significa nella memoria di Internet. Inoltre il pacchetto sudo ha cambiato il suo default qualche tempo fa per usare vi come editor predefinito, che credo coincidesse con una modifica del comportamento riguardo all'accettazione delle variabili ambientali. Non ho una cronologia chiara di come, quando o se questi eventi si relazionano tra loro in questo momento.
Il seguente
alternatives
(originariamente solo Debian e le sue forcelle, ma ora la maggior parte delle distro principali, IIUC).ha il vantaggio che
sudoers
prima modificarlo con il suo editor predefinitosudo
è non è stato costruito con--with-env-editor
Da una riga di comando:
sudo update-alternatives --config editor
sudo visudo
ora dovrebbe aprire l'editor di tua scelta.
Un normale programma unix che vuole invocare un editor eseguirà il programma il cui nome è nella variabile ambiente EDITOR
o VISUAL
, e se la variabile non è impostata, un valore predefinito dipendente dal sistema. Molti programmi, ma non tutti, controllano entrambi EDITOR
e VISUAL
; la distinzione è lungamente obsoleta (una volta che si esegue EDITOR
su un teletipo e VISUAL
su un terminale "di vetro" ...) quindi è necessario impostare entrambi sullo stesso valore. Vi è un certo disaccordo sul fatto che il contenuto della variabile debba essere il percorso completo di un eseguibile, un nome di eseguibile che è stato cercato $PATH
o uno snippet di shell, quindi è necessario attenersi a un percorso di un eseguibile che non contiene alcun metacarattere di shell. L'impostazione predefinita del sistema quando nessuna variabile è impostata è tradizionalmentevi
, sebbene alcune distribuzioni abbiano cambiato questo in un editor più adatto ai principianti come nano
.
visudo
controlla entrambi VISUAL
e EDITOR
(questo può essere compilato, presumibilmente per dissuadere root dall'usare un editor la cui sicurezza non è attendibile dal produttore della distribuzione, ma nemmeno OpenBSD lo fa).
Questi passaggi mi permettono di impostare l'editor su vi per visudo su Ubuntu 12.04, probabilmente funzionano per la maggior parte delle distribuzioni:
Emetti comando:
sudo visudo
Questo apre il file sudoers in nano. Nella parte superiore vedrai questa linea:
Defaults env_reset
Aggiungi la seguente riga sotto la riga sopra:
Defaults editor=/usr/bin/vi
Salva il file ed esci. Riapri visudo come utente predefinito:
sudo visudo
Il file sudoers ora si apre in VI.