GNU/Linux >> Tutoriels Linux >  >> Linux

Devenir root depuis l'intérieur de Vim ?

Parfois, je commence à éditer des fichiers de configuration dans /etc en utilisant Vim, mais oubliez d'utiliser sudo pour démarrer Vim. Le résultat inévitable est qu'après avoir terminé mes modifications, je rencontre l'avis redouté que je n'ai pas la permission d'enregistrer le fichier.

La plupart du temps, les modifications sont suffisamment petites pour que je quitte simplement Vim et recommence le tout en tant que root. Je pourrais bien sûr enregistrer dans un emplacement où je peux écrire puis copier en tant que root, mais c'est aussi un peu ennuyeux.

Mais je suis sûr qu'il existe un moyen plus simple de devenir root ou d'utiliser sudo depuis Vim, sans avoir à annuler les modifications. Si la méthode ne s'appuierait pas sur sudo être mis en place pour l'utilisateur, ce serait encore mieux.

Réponse acceptée :

sudo ne peut pas changer l'utilisateur effectif d'un processus existant, il crée toujours un nouveau processus qui a les privilèges élevés et le shell d'origine n'est pas affecté. C'est un élément fondamental de la conception UNIX. Le plus souvent, j'enregistre simplement le fichier dans / tmp comme solution de contournement. Si vous voulez vraiment l'enregistrer directement, vous pouvez essayer d'utiliser une fonctionnalité de Vim qui peut diriger un fichier vers un autre processus. Essayez d'enregistrer avec cette commande :

:w !sudo dd of=%

Testé et fonctionne. Vim vous demandera alors de recharger le fichier, mais ce n'est pas nécessaire :vous pouvez simplement appuyer sur o pour éviter de recharger et de perdre votre historique d'annulation. Vous pouvez même enregistrer cela dans une commande/fonction Vim ou même le lier à une clé pour un accès facile, mais je vais laisser cela comme exercice au lecteur.


Linux
  1. Comment fonctionnent les composants internes de Sudo ?

  2. Vim ne fonctionne pas dans Tmux ?

  3. Différence entre l'utilisateur Sudo et l'utilisateur root ?

  4. Changer le mot de passe root par Sudo, sans Su ?

  5. Comment exécuter le terminal en tant que root ?

Comment créer une vidéo à partir d'images sous Linux

Toujours lancer le terminal en tant qu'utilisateur root (sudo) dans Ubuntu

Enregistrer le fichier en tant que root après l'avoir modifié en tant que non root

Comment coller depuis un tampon en mode ex de vim ?

Où les incidents sudo sont-ils signalés ?

Est-ce que sudo su - est considéré comme une mauvaise pratique ?