Comment configurer visudo pour utiliser un éditeur différent de celui par défaut sur Fedora?

28

Fedora 14 utilise vi par défaut lorsque l'on exécute visudo. Y a-t-il un moyen de changer cela en autre chose?

tshepang
la source

Réponses:

44

L'ajout Defaults editor=/path/to/editordu 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.

Tok
la source
Pourriez-vous s'il vous plaît fournir les commandes que vous avez exécutées?
Tok
@Tshepang - Vous pouvez également définir l'éditeur par défaut = / usr / bin / nano dans le fichier sudoers pour spécifier un éditeur. À ce stade, je suppose que vous souhaitez utiliser nano comme spécifié dans votre commentaire précédent.
Tok
@Tshepang - Oui, cependant, c'est probablement un produit de la construction du package en utilisant --with-env-editor.
Tok
1
@Tok: Sur quel système ne visudorespecte pas $VISUALet $EDITOR?
Gilles 'SO- arrête d'être méchant'
3
@Gilles - sur la base de ma lecture, Ubuntu a récemment changé les paramètres de construction de leur paquet sudo pour ne pas les inclure --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.
Tok
11

Le suivant

  • fonctionne pour les distributions qui utilisent alternatives(à l'origine juste Debian et ses fourches, mais maintenant la plupart des distributions principales, IIUC).
  • a l'avantage que

    1. vous n'aurez pas besoin d'éditer d' sudoersabord avec son éditeur par défaut
    2. cela fonctionne même si package = sudon'a pas été construit avec--with-env-editor

Depuis une ligne de commande:

  1. Courir sudo update-alternatives --config editor
  2. Choisissez l'éditeur souhaité dans le menu (mode texte). Si vous ne voyez pas l'éditeur que vous voulez, vous devrez probablement l'installer; annuler, faire cela et répéter.

sudo visudo devrait maintenant ouvrir l'éditeur de votre choix.

TomRoche
la source
7

Un programme Unix normal qui souhaite appeler un éditeur exécutera le programme dont le nom se trouve dans la variable d'environnement EDITORou 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 EDITORet VISUAL; la distinction est depuis longtemps obsolète (une fois que vous utiliseriez EDITORun téléscripteur et VISUALun 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é $PATHou 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.

visudovérifie les deux VISUALet 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).

Gilles 'SO- arrête d'être méchant'
la source
3

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.

Eric Leschinski
la source
2

visudoutilise la EDITORvariable, par exemple.

sudo EDITOR=/path/to/editor visudo
Bhavin
la source