Réponses:
L'ajout Defaults editor=/path/to/editor
du fichier sudoers obligera visudo à utiliser l'éditeur spécifié pour les modifications.
De plus, si votre paquet sudo a été construit avec --with-env-editor, comme c'est le cas par défaut sur certaines distributions Linux, vous pouvez également définir la variable d'environnement EDITOR en exécutant export EDITOR=/path/to/editor
. Effectué sur la ligne de commande, cela reviendra dès que cette session shell sera terminée, la définition de la variable dans un profil ~ / .bashrc ou / etc / entraînera la modification de persister.
visudo
respecte pas $VISUAL
et $EDITOR
?
--with-env-editor
, ce qui signifie récemment ici dans la mémoire d'Internet. De plus, le paquet sudo a changé sa valeur par défaut il y a quelque temps pour utiliser vi comme éditeur par défaut, ce qui, je crois, a coïncidé avec un changement de comportement concernant l'acceptation des variables d'environnement. Je n'ai pas de chronologie claire de comment, quand ou si ces événements sont liés les uns aux autres pour le moment.
Le suivant
alternatives
(à l'origine juste Debian et ses fourches, mais maintenant la plupart des distributions principales, IIUC).a l'avantage que
sudoers
abord avec son éditeur par défautsudo
n'a pas été construit avec--with-env-editor
Depuis une ligne de commande:
sudo update-alternatives --config editor
sudo visudo
devrait maintenant ouvrir l'éditeur de votre choix.
Un programme Unix normal qui souhaite appeler un éditeur exécutera le programme dont le nom se trouve dans la variable d'environnement EDITOR
ou VISUAL
, et si la variable n'est pas définie, une valeur par défaut dépendante du système. De nombreux programmes, mais pas tous, vérifient les deux EDITOR
et VISUAL
; la distinction est depuis longtemps obsolète (une fois que vous utiliseriez EDITOR
un téléscripteur et VISUAL
un terminal «en verre»…), vous devez donc définir les deux sur la même valeur. Il existe un certain désaccord quant à savoir si le contenu de la variable doit être le chemin d'accès complet à un exécutable, un nom d'exécutable recherché $PATH
ou un extrait de shell, vous devez donc vous en tenir à un chemin d'accès à un exécutable ne contenant aucun métacaractère shell. La valeur par défaut du système lorsqu'aucune variable n'est définie est traditionnellementvi
, bien que certaines distributions aient changé cela en un éditeur plus convivial pour les débutants tel que nano
.
visudo
vérifie les deux VISUAL
et EDITOR
(cela peut être compilé, probablement pour dissuader root d'utiliser un éditeur dont la sécurité n'est pas approuvée par le fabricant de la distribution, mais même OpenBSD ne le fait pas).
Ces étapes me permettent de définir l'éditeur sur vi pour visudo sur Ubuntu 12.04, elles fonctionnent probablement pour la plupart des distributions:
Émettre une commande:
sudo visudo
Cela ouvre le fichier sudoers dans nano. Près du sommet, vous verrez cette ligne:
Defaults env_reset
Ajoutez la ligne suivante sous la ligne ci-dessus:
Defaults editor=/usr/bin/vi
Enregistrez le fichier et quittez. Rouvrez visudo en tant qu'utilisateur par défaut:
sudo visudo
Le fichier sudoers s'ouvre maintenant dans VI.