Dans l’article Changer l’éditeur par défaut utilisé par Ubuntu, j’indique que l’on peut choisir l’éditeur utilisé par divers programme (dont crontab) avec la commande select-editor.
Mais si vous positionnez ce choix à autre chose que nano (VIM par exemple) et que vous voulez éditer le fichier sudoer avec la commande :
sudo visudo
Vous aurez ceci (enfin sur une Ubuntu 10.04) :
Visudo continue d’utiliser nano.
J’ai vérifié mon paramétrage de select-editor en affichant le contenu de ~/.selected_editor :
# Generated by /usr/bin/select-editor SELECTED_EDITOR="/usr/bin/vim.basic"
Visudo étant lancé en sudo, je me suis dit qu’il fallait aussi lancer préalablement select-editor en sudo
–> sans effet
Ensuite j’ai lu la man page de select-editor et y ai découvert ceci :
SELECTED_EDITOR is overridden by the VISUAL and EDITOR environment variables.
J’ai donc vérifié mes variable d’environnement (commande env), pas de trace de la variable EDITOR, je l’ai donc défini dans mon ~/.bashrc (que j’ai ensuite sourcé) :
–> sans effet
J’ai défini la variable EDITOR dans /etc/bash.bashrc (puis sourcé) :
–> sans effet
Ce n’est qu’après divers recherche Internet que j’ai trouvé la solution.
Contrairement a ce qui est indiqué ici, Visudo n’utilise pas sensible-editor, ce qui est d’ailleurs l’objet d’un bug :
https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/280877
Visudo utilise le programme /usr/bin/editor qui n’est qu’un lien symbolique vers un autre éditeur :
ls -la /usr/bin/editor lrwxrwxrwx 1 root root 24 2010-07-26 14:01 /usr/bin/editor -> /etc/alternatives/editor ls -la /etc/alternatives/editor lrwxrwxrwx 1 root root 18 2010-07-26 14:01 /etc/alternatives/editor -> /usr/bin/nano
On pourrait donc changer manuellement ce liens, mais ce n’est pas la façon de faire, il utiliser la commande suivante :
sudo update-alternatives --config editor
Qui comme select-editor, permet de choisir, l’éditeur a utiliser et créé les liens symbolique correspondant :
Il existe 5 choix pour l'alternative editor (qui fournit /usr/bin/editor). Sélection Chemin Priorité État ------------------------------------------------------------ * 0 /bin/nano 40 mode automatique 1 /bin/ed -100 mode manuel 2 /bin/nano 40 mode manuel 3 /usr/bin/mcedit-debian 25 mode manuel 4 /usr/bin/vim.basic 30 mode manuel 5 /usr/bin/vim.tiny 10 mode manuel Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :4 update-alternatives: utilisation de « /bin/vim.basic » pour fournir « /usr/bin/editor » (editor) en mode automatique.
Et voila, lorsque l’on édite son sudoer visudo utilise VIM (dans mon cas) :
Rque : sensible-editor utilisé dans les autres cas (cf. Changer l’éditeur par défaut utilisé par Ubuntu) n’est pas un lien symbolique mais réellement un programme qui lit le fichier ~/selected-editor en vue de lancer l’éditeur voulu :
ls /usr/bin/sensible-editor -la -rwxr-xr-x 1 root root 1109 2010-04-09 02:45 /usr/bin/sensible-editor
Rque 2 : là où sensible-editor est propre a chaque utilisateur, puisque paramétré dans le $HOME, editor utilisé par visudo est pour tous les utilisateurs.
Sources :
Article m’ayant induit en erreur :
http://linuxtoolkit.blogspot.com/2009/11/changing-default-editor-for-visudo.html
https://help.ubuntu.com/community/Sudoers
Article m’ayant mis sur la piste :
https://lists.ubuntu.com/archives/ubuntu-users/2007-July/118201.html
Image par Nic’s events sous CC BY-SA