gksu: Gtk-WARNING **: ne peut pas ouvrir l'affichage:: 0

40

Gksu a soudainement cessé de travailler pour moi:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

La même chose arrive avec gparted-pkexec:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

Qu'est-ce qui pourrait éventuellement être la cause de cela?

Je ne cours pas ceci par SSH ou VNC. C'est localhost dans une fenêtre de terminal normale .

d_inévitable
la source
Vous ne travaillez pas dans une interface utilisateur graphique ou n'essayez pas d'exécuter un programme sur un système (par exemple, via ssh) qu'aucune interface graphique ne fournit.
AB
1
@AB Je devrais préciser que ce n'est pas via ssh. C'est sur l'hôte local dans une fenêtre de terminal très normale. Enfait, l’ouverture depuis le menu de l’application a le même résultat.
d_invitable
Vous ne devriez pas avoir à utiliser gksupour exécuter GParted. gpartedutilise polkit pour obtenir des privilèges élevés.
muru
@muru quand je cours gpartedsans gksumoiRoot privileges are required for running gparted.
d_inévitable
Ok, essayez gparted-pkexec(sans gksu) ou gksu gpartedbin.
Muru

Réponses:

67

Si vous exécutez Ubuntu 17.10 ou une version plus récente, ce problème peut survenir lorsqu'une application n'a pas été mise à jour avec une prise en charge complète de Wayland. En guise de solution de contournement jusqu'à la mise à jour de l'application, vous pouvez exécuter

xhost +SI:localuser:root

ce qui permettra à l' rootutilisateur d'afficher des applications sur votre bureau. Consultez également ce Q & A pour d'autres solutions possibles: Pourquoi ne pas utiliser gksu / gksudo ou lancer une application graphique avec sudo avec Wayland?

la source

Cutton Eye
la source
@MDMower Thx pour l'édition, a appris quelque chose de nouveau =)!
Cutton Eye
@pomsky Thx pour avoir ajouté le lien;)!
Cutton Eye
En 18.04, X-Org sera à nouveau utilisé par défaut. Donc, ce problème devrait alors être résolu. voir
Cutton Eye
11

Essayez d’exécuter xhost +localhostdans votre terminal, puis réexécutez la commande. Cela permet à tous les utilisateurs de votre système (c.-à-d. Root) d'ouvrir des fenêtres sur votre écran. Veillez à utiliser + localhost et pas simplement +, car il est plus sûr d'autoriser les connexions à partir de seulement localhost que de n'importe où.

Pour rendre cela permanent, éditez le ~/.xinitrcfichier comme ceci:

Courir gedit ~/.xinitrc

Editez le fichier pour qu'il ressemble à ceci (il devrait être vide au début):

#! /bin/bash
xhost +localhost &

Enregistrez maintenant le fichier, déconnectez-vous et connectez-vous. Maintenant, tout devrait fonctionner correctement avec sudo.

Je ne peux pas reproduire votre problème le 14.04, mais cela a fonctionné pour moi dans le passé lorsque sudo / gksu a lancé cette erreur.

Sources:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession
Mark Paskal
la source
1
Cela fonctionne vraiment. Cela signifie-t-il que c'est une restriction de contrôle d'accès? Des idées ce que la cause de ceci pourrait être?
d_inevitable
Oui, c’est une fonctionnalité de sécurité de X. Elle permet uniquement les connexions de votre utilisateur au serveur xserver jusqu’à indication contraire, je pense. Je ne suis pas trop sûr de savoir pourquoi cela est nécessaire pour certaines applications et pas pour d'autres, et je ne sais pas pourquoi cela le ferait pour tout. Peut-être avez-vous bricolé et renforcé la sécurité quelque part?
Mark Paskal
2
Cela génère une erreur: xhost: impossible d'ouvrir l'affichage ""
IgorGanapolsky
5
Sur Redis , il a été suggéré d'utiliser xhost +local:. Après cela, j’ai pu lancer gparted à partir du terminal, mais l’utilisation xhost +localhostn’a pas fonctionné.
Rmin
1
Effectivement! xhost +local:réparé le mien! Cela donne non-network local connections being added to access control listce qui est nécessaire.
Lobner
5

Exécutez les opérations suivantes dans votre terminal:

nano /home/user/.bashrc # user = name of your user

Ajoutez la ligne suivante à la fin.

export XAUTHORITY=$HOME/.Xauthority
Wilder Hernández García
la source
2
Serait utile si vous pouviez ajouter une explication sur la façon dont cela résout le problème et sur les éventuels effets secondaires?
Geoff