Il n'est pas conseillé de l'utiliser sudo
avec une application graphique comme gedit
, comme décrit sur ce lien . En conséquence, j'ai eu tendance à utiliser vim
avec sudo
.
Récemment, j'ai remarqué que mon ~/.viminfo
appartenait à root sur une installation assez récente d' Ubuntu 16.04 (Xenial Xerus), donc je me suis demandé si même Vim est considéré comme graphique ou s'il y a un autre problème avec l'invocation sudo vim
. Après avoir changé de propriétaire pour moi via:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
et en cours d'exécution, sudo vim
je n'ai pas pu avoir la ~/.viminfo
propriété de root. Cependant, je suis certain qu'il appartenait récemment à root.
Est-il déconseillé d'invoquer sudo vim
?
:w !sudo tee %
Réponses:
Oui, c'est sûr.
Le problème avec
sudo gedit
est que les applications GUI utilisent certains fichiers, tels que~/.cache/dconf
, et après une élévation,gedit
ce fichier devient la propriété de la racine. Eh bien, ce fichier particulier contient des paramètres spécifiques à l'utilisateur pour les applications GUI, y compris le bureau, donc si le système ne peut pas lire ces paramètres - c'est mauvais. IIRC un utilisateur ne peut pas démarrer un bureau particulier. Les données des fichiers récents de l'utilisateur sontrecently-used.xbel
également affectées.D'un autre côté, Vim n'a pas ce problème. Il n'utilise aucune base de données liée à l'interface graphique et n'y met rien
recently-used.xbel
. Il a été créé à des fins de console uniquement, bien que gVim existe également. En fait, sur certains systèmes, Vim est votre seul choix d'éditeur. Il est donc plus sûr que gedit de ne pas causer les mêmes problèmes. Vous modifiez toujours en tant que root dans les deux cas, vous pouvez donc provoquer des problèmes avec une modification incorrecte.Selon ce billet de blog :
Bien que l'auteur souligne que cela peut entraîner des problèmes, il n'y a rien de complexe - juste
chown
le fichier pour vous.Voir également:
la source
sudo vim
pour obtenir une copie de vim en cours d'exécution en tant que root, puis:!/bin/sh
pour obtenir un shell root.sudo /bin/sh
? En pratique, si l'utilisateur dispose déjà d'un accès root, il n'a pas besoin d'utiliser des astuces élaborées./etc/sudoers
dossier. Vous n'avez pas besoin de le faire%wheel ALL=(ALL) ALL
- lasudo
configuration permet bien plus de nuances que cela./bin/bash
sur~/.viminfo
, mettre un setuid dessus et attendre que l'utilisateur s'exécutesudo vim
pour qu'il soit tronqué à root?Il est également possible d'utiliser
sudoedit
pour y parvenir; il ouvre une copie temporaire du fichier dans votre éditeur, votre éditeur s'exécutant comme vous. Depuis la page de manuel :Cela fonctionne très bien avec vim (c'est ce que je fais généralement) et j'imagine que cela vous permettrait également d'utiliser gedit. Il existe des restrictions de sécurité .
la source
Le lien est très ancien (2013). Il recommande d'utiliser
gksudo
ougksu
pour des applications graphiques, mais les deux deviennent obsolètes. Plus tard, la réponse acceptée suggère égalementsudo -H
.Le consensus général dans la communauté Ask Ubuntu récemment est d'utiliser:
Les restes seul problème qui
sudo
ne disposent pas d' un profil pour les paramètres de l' onglet, extensions, retour à la ligne, nom de la police, taille de la police, etc. Vous pouvez hériter ces de votre profil d'utilisateur mais avec un script d'emballage comme celui - ci: Comment puis - je synchroniser ma racine gedit avec les préférences de mon utilisateur gedit?la source
Oui, son utilisation est sûre
sudo vim
. Les problèmes que je rencontre sontDevoir quitter le fichier et rouvrir avec
sudo vim
pour pouvoir le modifier.Avoir la racine
vimrc
étant celle par défaut, pas mes trucs utiles personnalisés.Voici une fonction que vous pouvez mettre dans votre
bashrc
pour permettre à vim de lancer automatiquement sudo si vous ne pouvez pas éditer le fichier normalement.la source
sudo
par défaut préserve la$HOME
variable d'environnement, ce qui signifie quesudo vim
va utiliser votre personnalisé Vimrc, et également des moyens quisudo vim
vont changer la propriété~/.viminfo
à la racine: racine et parce que vous certains inconvénients.viminfo
.C'est bien d'utiliser vi en tant que root. Il y aura des moments où vous devrez modifier un fichier qui nécessite des privilèges sudo ou root, comme changer votre fichier d'interface réseau, ou peut-être modifier votre fichier de configuration sshd. L'utilisation de root pour des éléments graphiques est mauvaise car les gens se connectent à IRC ou naviguent sur le Web en tant que root. S'ils obtenaient un virus en le faisant, il aurait un accès root complet.
la source
Quelque chose qui n'a pas été mentionné dans les autres réponses est que l'exécution de vim avec root donnera des privilèges root à tous les plugins que vous avez installés. Ainsi, la question de savoir s'il est sûr ou non de s'exécuter en tant que root dépend de si vous faites confiance à ces développeurs de plugins (ou contributeurs à leur projet) pour ne pas posséder votre système dans son cœur.
Vim est généralement contrôlé par les mainteneurs de paquets dans toutes les distributions Linux, il est donc facile de faire confiance. Cependant, les plugins vim sont généralement installés directement à partir des dépôts GitHub et ont généralement beaucoup moins d'audits d'utilisateurs (peut-être zéro). En d'autres termes, il n'y a pas de processus de vérification avec eux.
Si vous ne chargez pas de plugins en root, alors je suppose que l'exécution en tant que root dépend de la confiance que vous accordez aux développeurs vim. Vous pouvez cependant éviter d'avoir à leur faire confiance en utilisant sudoedit qui est fabriqué par les mêmes développeurs de sudo, des personnes auxquelles nous avons déjà fait confiance avec un accès root de toute façon. GKFX et NieDzejkob ont déjà expliqué pourquoi sudoedit est idéal. Outre le fait que vous n'avez pas à faire confiance à root pour accéder à quelqu'un d'autre que les développeurs de sudo, vous pouvez charger tous les plugins auxquels vous avez déjà fait confiance avec votre compte d'utilisateur normal.
la source
sudoedit /etc/apt/sources.list
avec un plugin compromis installé, il peut probablement insérer un référentiel malveillant et accéder à la racine la prochaine fois de toute façon. Je suis sûr qu'il existe une longue liste de fichiers protégés par racine pour lesquels quelque chose de similaire s'applique. Et bien sûr, tous les virus ne nécessitent pas de racine; on pourrait saisir vos coordonnées bancaires avec pas plus qu'une extension de navigateur.