GNU/Linux >> Tutoriels Linux >  >> Linux

sudoedit :pourquoi l'utiliser sur sudo vi ?

Je suis tombé sur cette question en cherchant quelque chose de totalement indépendant, mais j'ai pensé ajouter la distinction importante suivante, qui n'a pas du tout été mentionnée jusqu'à présent :sudoedit n'exécute pas votre éditeur en tant que root.

$ sudo vim /etc/farts.conf 

Exécutera simplement vim en tant que root, lui permettant de lire le fichier. L'inconvénient est que l'éditeur s'exécute désormais également en tant que root et peut tout faire. Si vous vouliez juste autoriser un utilisateur à éditer un fichier de configuration et rien d'autre, tant pis, vous lui avez juste donné root sur l'ensemble du système. Rien ne m'empêche de générer un shell depuis vim avec :sh ou :!command , et puisqu'il s'agit de sous-processus, ils s'exécuteront également en tant que root.

D'autre part :

$ sudoedit /etc/farts.conf

fonctionnera en fait différemment. Il créera une copie avec un nom unique dans /tmp avec des autorisations verrouillées uniquement pour votre utilisateur, puis générera votre éditeur normalement, sans privilèges root, sur cette copie.

Une fois que vous quittez votre éditeur, il comparera le fichier temporaire et le fichier d'origine, et remplacera en toute sécurité l'original par votre modification si elle a changé.

Dans ce scénario, il devient possible d'autoriser un utilisateur à modifier un fichier système, mais pas de lui permettre d'exécuter des binaires aléatoires en tant que root ou de pousser n'importe où sur le système de fichiers.

C'est principalement la distinction réelle, le reste qui a été mentionné n'est que des effets secondaires intéressants.


Tout d'abord, sudo vim mentionne déjà explicitement votre éditeur par défaut, ce qui n'est pas nécessaire si vous l'avez défini dans $EDITOR . sudoedit vous évite de définir l'éditeur chaque fois que vous souhaitez modifier quelque chose et, sur un système multi-utilisateurs, cela permet à chacun d'utiliser l'éditeur qu'il aime personnellement.

Comment? Considérez un système où les utilisateurs normaux n'obtiennent que sudo privilèges pour modifier certains fichiers. Ils ne peuvent pas exécuter sudo avec quoi que ce soit d'autre cependant. Vous devriez leur permettre de sudo vi et sudo vim et sudo nano et sudo emacs et sudo pico (etc). Au lieu d'avoir à le faire, vous pouvez simplement leur permettre de sudoedit le fichier, avec leur choix de réglage $EDITOR à tout ce qu'ils aiment. (Imaginez que vous obligeriez un amateur d'Emacs à utiliser Vim...)

Un autre problème est que si votre $EDITOR est défini sur vim , et vous avez des paramètres de personnalisation pour celui-ci dans le .vimrc de votre utilisateur , ces paramètres ne seront pas utilisés si vous utilisez sudo vim ou sudo $EDITOR . sudoedit préserve cependant l'environnement de l'utilisateur appelant, et donc vos paramètres.

Voir aussi :Qu'y a-t-il de si génial avec sudoedit ?


Linux
  1. Pourquoi j'utilise Linux pour gérer mon studio de yoga

  2. Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

  3. Pourquoi Sudo ignore-t-il les alias ?

  4. Pourquoi ne puis-je pas utiliser Cd dans un script Bash ? ?

  5. Comment utiliser la commande su sur adb shell ?

Pourquoi j'utilise rxvt comme terminal

Les 10 meilleures raisons d'utiliser Linux

Utiliser l'éditeur vi

Pourquoi les nerds utilisent Linux

COMMENT UTILISER L'EDITEUR SED

Linux vs Mac OS :15 raisons d'utiliser Linux au lieu de Mac OS