Quelles mauvaises choses spécifiques se produisent lorsque gedit est utilisé avec sudo?

10

J'ai lu cette réponse expliquant que "parfois" root peut posséder quelque chose dans le /home/$USERrépertoire.

Quelqu'un peut-il donner un exemple pour le prouver? Donnez juste un cas de test quand quelque chose de vraiment grave se produit, quand je cours

sudo gedit /etc/rc.local

modifier le fichier et enregistrer.

J'ai eu beaucoup de downvotes essayant d'aider OP et les commentaires ont été inondés en disant que c'est un crime de faire fonctionner gedit avec sudo.

Quelqu'un peut-il donner un vrai exemple?

J'ai clairement expliqué pourquoi cette question n'est pas un double. Il n'y a pas de réponse spécifique à gedit pour la question liée.

Et il est important d'expliquer pourquoi largement utilisé sudo geditest mauvais, ou pas vraiment, etc.

Pilot6
la source
2
Toujours utilisé avec sudo, jamais eu de problème. Bonne question.
Dario Salvati
1
@Wilf, nano aime écrire ~ / .nano_history qui si vous l'exécutez avec sudo fait que le fichier appartient à root, donc lorsque vous exécutez nano sans sudo, il se plaint de ne pas pouvoir accéder au fichier. Un simple le sudo chowncorrige.
psusi
1
En ce qui concerne rc.local, c'est un script de niveau d'exécution, il devrait appartenir à root, donc sudo n'a aucun effet sur lui. Essayez-le avec ~ / .bashrc. Je ne pense pas que le shell acceptera ce fichier s'il appartient à root et devrait revenir aux paramètres par défaut. Mais ce n'est qu'une suggestion. Je serai de retour demain, voyez comment cette question fait
Sergiy Kolodyazhnyy
1
Pour la plupart des éditeurs, ce n'est pas l'ouverture, c'est la pression sur SAVE. Les plus éditros enregistrent également les paramètres quelque part, donc si vous modifiez les paramètres, ils les mettront à jour.
Wilf
2
Pour ce que ça vaut, je l'ai juste édité sur place pour l'utiliser -Hquand je le vois.
muru

Réponses:

11

Pour autant sudo gedit, rien de grave, juste une mauvaise pratique, surtout ces derniers temps. À quel point serait-il plus difficile de suggérer sudo -H gedit?

-H,--set-home Demandez que la stratégie de sécurité définisse la variable d'environnement HOME sur le répertoire personnel spécifié par l'entrée de la base de données de mots de passe de l'utilisateur cible. Selon la stratégie, il peut s'agir du comportement par défaut.

Que ne passerait-il?

Vous obtenez quelques fichiers appartenant à root dans votre dossier de départ. Un ( recently-used.xbel) reviendra probablement à la propriété de l'utilisateur. Cela peut se produire lorsqu'un fichier est supprimé et recréé. Pour voir ce qui sudo gedita changé, exécutez find ~ -user root -group rootet voyez ce qui est retourné. Par défaut, cela ne devrait être rien.

Avec cette commande, vous pouvez voir quelques fichiers appartenant à root. L'un serait un nouveau .file, .gvfset tôt ou tard un root-propriétaire ~/.cache/dconfet le susmentionné recently-used.xbel.

Donc pas de trucs «le ciel échoue», mais quand même. Il y a maintenant des rapports selon lesquels une utilisation continue provoque d'autres problèmes, mais ne va pas revendiquer ce que je ne vois pas ici.

Notez également qu'à partir du 13.10, a sudo geditutilisera la configuration gedit de l'utilisateur plutôt que la configuration gedit de root. Encore une fois juste une mauvaise pratique, alors pourquoi continuer à le faire ou suggérer à d'autres de le faire?

doug
la source
1
Parfois, je profite également de l'occasion pour montrer aux utilisateurs comment utiliser nano car c'est facile et la plupart du temps peut remplacer gedit. Il y a des cas où le gedit est toujours meilleur que le nano même pour ceux qui savent l'utiliser. De plus, sudo gedit peut conduire à sudo nautilus, ce qui est probablement pire .. (Ici, j'ai un gedit activé par pkexec mais c'est au-delà de la portée de cette discussion
doug
@wjandrea, sonne bien, édité
doug
12

C'est peut-être un fantasme, mais il y a un certain nombre de personnes qui disent la même chose:

  • Pourquoi devrais-je utiliser gksudo pour les applications Gtk au lieu de sudo?

    Il y a d'autres moments, cependant, où les effets secondaires peuvent être aussi légers que les extensions Firefox ne collent pas ou aussi extrêmes que de ne plus pouvoir se connecter car les autorisations sur votre autorité .ICE ont changé.

  • Pourquoi les utilisateurs ne devraient-ils jamais utiliser sudo normal pour démarrer des applications graphiques?

    Supposons que vous exécutez gedit (un éditeur de texte graphique) en tant que root. Si vous exécutez sudo gedit, HOME continuera à pointer vers votre répertoire personnel, même si le programme s'exécute en tant que root. Par conséquent, gedit écrira les fichiers de configuration en tant que root dans votre répertoire personnel. Cela entraînera parfois que les fichiers de configuration appartiennent à root et sont donc inaccessibles pour vous (lorsque vous exécutez le programme en tant que vous-même et non en tant que root).

  • Comment exécuter un programme GUI en tant qu'utilisateur différent (Debian)?

    Tout d'abord, n'utilisez pas sudo ou su pour changer les utilisateurs afin d'exécuter un processus graphique, ou vous risquez d'avoir des problèmes sur la ligne (~ / .ICEauthority changer de propriétaire est un problème notable). À la place, créez un raccourci qui utilise la commande suivante:

  • Exécution graphique de Sudo

    Eh bien, pour être parfaitement honnête, la plupart du temps ce n'est pas le cas. Pour de nombreuses applications, vous pouvez les exécuter de manière incorrecte - en utilisant sudo pour les applications graphiques et ne voyez aucun effet secondaire indésirable.

    ...

    Ces erreurs se produisent car, parfois, lors du sudolancement d'une application, celle-ci se lance avec les privilèges root mais utilise le fichier de configuration de l'utilisateur.

    Ces archives de courrier peuvent également vous intéresser.

Alors, testons-le.

2 boîtes virtuelles flambant neuves. Ubuntu 14.04. Ne lancez jamais Firefox sur eux. Que se passera-t-il lorsque j'exécuterai la commande sudo firefox?

tim@Hairy14CVB:~$ sudo firefox    
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

...

[email protected]:2192:13

C'est le même (ou du moins très similaire) pour les deux boîtiers virtuels. Pendant que Firefox était en cours d'exécution, j'ai installé une extension youtube - une extension en vedette. Ensuite, j'ai fermé Firefox et vérifié la sortie.

tim@Hairy14CVB:~$ ls -la .ICEauthority 
-rw------- 1 tim tim 1336 Jun  4 21:31 .ICEauthority

Eh bien, .ICEauthorityça va! Pourtant...

tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x  3 root root 4096 Jun  1 20:49 ..
drwx------  3 root root 4096 Jun  5 22:41 .dbus
drwx------  4 root root 4096 Jun  5 22:41 .mozilla

3 choses dans mon dossier personnel ( /home/tim/) appartiennent à root ( .., .dbuset .mozilla). C'est le même (ou du moins très similaire) pour les deux boîtiers virtuels.

Alors, est-ce important. Je n'étais pas sûr, alors j'ai lancé Firefox, comme ceci:

tim@Hairy14CVB:~$ firefox

(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.

Et cette horrible erreur:

entrez la description de l'image ici

Pour la sortie complète du terminal (y compris le babillage firefox), consultez ces deux boîtes à pâte, ici et ici .

Soit dit en passant, je peux toujours exécuter Firefox en tant que root. Mais maintenant, plus de fichiers ont été modifiés:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..
drwx------  3 root root  4096 Jun  5 22:55 .adobe
drwx------  3 root root  4096 Jun  5 22:40 .dbus
drwx------  3 root root  4096 Jun  5 22:55 .macromedia
drwx------  4 root root  4096 Jun  5 22:40 .mozilla

Était-ce parce que j'ai téléchargé une image sur imgur.com? Pas certain.

Comment ai-je résolu ce problème? chown. Je ne le comprends pas, mais Internet a dit de le faire, et c'est une boîte virtuelle donc yolo.

sudo chown -R tim:tim /home/tim/

Et cela l'a corrigé. Maintenant, la sortie est juste le ..fichier:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..

Et c'est la même chose sur mon ordinateur. Oh, et sur ma virtualbox Kubuntu:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  3 root root  4096 May 16 14:10 ..

Sur lequel je n'ai même jamais exécuté de commande sudo. Tout va bien. Il suffit de ne pas exécuter sudosur une application graphique.

Test final: exécutez-le avec -Hles -idrapeaux et:

sudo -H firefox

et

sudo -i firefox

Et bonne nouvelle! Pourtant, la seule «chose» racine est ... Et je peux courir firefoxsans root.


OP veut que je parle de Gedit.

L'Iran

sudo gedit

Puis installé quelques plugins aléatoires. Ce fut la sortie:

tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..

Notez que je ne peux même pas voir la propriété de .gvfsdonc j'ai fait ceci:

tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..
dr-x------  2 root root      0 Jun  6 10:05 .gvfs

Donc, l'exécution sudo geditchange un fichier dans mon répertoire personnel en root.

Je peux toujours ouvrir gedit, mais cette fois je sors des ordures:

(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.

Et cela suggère qu'un autre fichier ( ~.local/share/recently-used.xbel) a été modifié. Je pense que c'est la liste des fichiers récemment utilisés et (chance) je n'ai plus ma liste de fichiers récemment utilisés:

Il devrait y avoir un fichier appelé output2.txt.save2. Mes pronoms sont He / Him

Tim
la source
1
Vous avez tout écrit sauf la réponse à la question. Donnez simplement un cas de test avec gedit. Dois-je signaler comme "pas une réponse"? Ou "très mauvaise qualité" bien que longue?)))
Pilot6
5
@ Pilot6 - dans la question Can anyone give an example how to prove it ..... Can anyone give a real example?- et cela renvoie à des trucs passés et donne un exemple de ce qui peut arriver avec Firefox comme root - Dois-je signaler votre commentaire 'pas constructif' car je ne trouve pas 'bizarrement grincheux'? soyez gentil cmon :)
Wilf
1
Oh s'il vous plaît ne pas utiliser ls -la|grep rootmais ou find . -uid 0oufind . -user root
solsTiCe
1
@ Pilot6 ok, j'ai édité pour inclure des trucs sur gedit. Je ne pense pas que cela ajoute quoi que ce soit à ma réponse, mais vous semblez le vouloir ainsi ...
Tim
4
Les citations et les exemples détaillés rendent cela super utile! Je suis content que vous ayez ajouté Gedit mais je suis d'accord avec @Wilf que c'était bien avant. Il est non seulement gEdit exemples que je (délibérément) ne mentionnaient pas . Si les gens le souhaitent, je peux y ajouter une courte note sur le "parfois", mais je pense vraiment que cette question est distincte et j'ai voté pour la réouverture . Si nous rouvrons cela, je vais essayer d'ajouter une autre réponse avec plus de détails sur Gedit, mais ce sera toujours la réponse la plus utile pour la plupart des gens.
Eliah Kagan