web-dev-qa-db-fra.com

Impossible d'ouvrir une application graphique avec "Sudo"

J'ai essayé de trouver une réponse ici: Impossible de lancer des applications graphiques depuis un terminal après la mise à jour vers 15.1 , mais cela n'a pas résolu mon problème.

$ Sudo gedit
Failed to connect to Mir: Failed to connect to server socket: No such file or directory.
Unable to init server: Could not connect: Connection refused.

(gedit:4574): Gtk-WARNING **: cannot open display:

geditin terminal fonctionne correctement. Ceci est mon ordinateur local, pas un système distant.

7
Inmate4587

Le message plus ancien est ci-dessous, mais est toujours valide à 100%.

Mir n'est pas ce que l'on pourrait considérer comme stable/prêt à fonctionner. La majeure partie du noyau Ubuntu (comme le gksudoet d’autres programmes mentionnés ci-dessous) dépend toujours de X et ne peut pas gérer ce que Mir utilise. Jusqu'à nouvel ordre, il est recommandé de revenir à X11 à moins que vous n'ayez une très bonne raison d'utiliser Mir. Si ce dernier est vrai, soyez à l'aise avec Sudo nano.


Répète après moi:

NE LANCEZ JAMAIS DE PROGRAMMES GRAPHIQUES AVEC Sudoname__! *

* sauf dans extrêmement rares cas où vous savez exactement ce que vous faites .... Ou vous avez un truc contre la douleur. Soit/ou.

Encore. Et encore une fois à votre chien pour faire bonne mesure.

A la place, utilisez la commande gksudopour lancer une commande graphique avec les droits d'accès root, comme suit:

gksudo gedit /var/log/auth.log

Si GKsudo n'est pas installé sur votre système, installez-le d'abord avec apt:

Sudo apt install gksudo

Notez que si vous utilisez KDE, utilisez la commande équivalente kdesudoname__.


La raison en est que Sudone conserve pas les autorisations utilisateur, qui sont très souvent utilisées par les applications graphiques. Par exemple, si vous modifiez le fichier de configuration gedit___ après l'avoir ouvert avec Sudoname__, vous rencontrerez un problème lorsque le fichier de configuration de geditest maintenant détenu par root et illisible et/ou non lisible par l'utilisateur.

gksudos'occupe de cela pour vous et gère tout le gros du travail consistant à s'assurer que les autorisations restent les mêmes et ne cassent rien.

Les commandes de console sont différentes car elles n'enregistrent souvent pas les configurations utilisateur et sont conçues pour utiliser Sudopar opposition à gksudoname__.

17
Kaz Wolfe