[Linux] Gtk-WARNING **: cannot open display:

Répondre
Partager Rechercher
B'jour/'soir ,
voilà je tourne sur une Ubuntu depuis quelques jours.
Quand je lance un programme ( je vais prendre comme exemple gedit ) dans une console en utilisateur normal tout se passe bien.
Mais quand je tente de lancer un programme dans un terminal en root : ca me met a chaque fois un message du style :
Citation :
(gedit:8180): Gtk-WARNING **: cannot open display:
Si quelqu'un pouvait m'aider ...
C'est vachement chiant , pas moyen d'éditer des fichiers de config
Bah ouais il arrive pas a t'ouvrir une fenetre.
Essaye de reinstaller gtk... (gtk.org)

pour editer tes fichiers de config il suffit d'ouvrir ton editeur en mode non graphique.
pour emacs c'est...oups..c'est quoi deja...
Si tu es loggué en mode graphique en utilisateur, et que root veut lancer un programme, il n'a pas accès à l'affichage. Seul l'utilisateur qui s'est loggué a le droit d'ouvrir des fenêtres.
Pour lui donner le droit, 2 méthodes :
  • xhost +
    Cette commande autorise tout le monde à ouvrir des fenêtres. À utiliser de façon exceptionnelle, et faire xhost - pour réactiver la limitation.
  • utiliser xauth.
    en tant qu'utilisateur loggué,
    xauth list $DISPLAY
    copier le résultat
    en tant que root
    xauth add [coller]

    Si tu aimes les commandes compliquées, tout ça peut se faire en une seule commande, en mode root :
    Code:
    xauth add $(su - user xauth list $DISPLAY)
    où user est le login de l'utilisateur loggué en mode graphique.
Vu le message d erreur ( cannot open display), j ai une question au cas ou :

Tu lances bien le programme gedit depuis un terminal sous gnome(ou autre) comme sur la capture d écran ci-dessous?

http://img274.echo.cx/img274/2403/capture94fb.th.png
Citation :
Publié par Lango
xhost +
xhost: unable to open display ""

Citation :
Publié par Lango
utiliser xauth.
Pas moyen de trouver wauth sous Synaptic.

Citation :
Publié par jolan
Vu le message d erreur ( cannot open display), j ai une question au cas ou :

Tu lances bien le programme gedit depuis un terminal sous gnome(ou autre) comme sur la capture d écran ci-dessous?

http://img274.echo.cx/img274/2403/capture94fb.th.png
Oui oui , en utilisateur normal , je tappes 'gedit' , gedit s'ouvre , je passe en root , je tappe 'gedit' , hop message d'erreur
Citation :
Publié par Landstalker/Mouna
xhost: unable to open display ""
Pas moyen de trouver wauth sous Synaptic.
C'est xauth.

Pas besoin de synaptic, c'est déjà dans Ubuntu.
__________________
ceci est une case marron foncé | ceci est une case marron clair
Citation :
Publié par Landstalker/Mouna
xhost: unable to open display ""
Hum... tu l'ouvres comment ton terminal ?
un petit export DISPLAY=:0 devrait faire l'affaire, mais c'est pas normal que ça ne soit pas fait automatiquement.

Citation :
Pas moyen de trouver wauth sous Synaptic.
Comme ça a été dit c'est xauth.
Le programme fait partie du package xbase-clients qui est forcément installé si tu as un serveur X. (À moins que unbutu diffère de debian sur ce point, mais je ne crois pas...)

Citation :
Oui oui , en utilisateur normal , je tappes 'gedit' , gedit s'ouvre , je passe en root , je tappe 'gedit' , hop message d'erreur
Tu fais comment pour passer en root ?
su ? su - ?
Citation :
Publié par jolan
Sous ubuntu, c est sudo qui est utilisé par défaut. (sudo , sudo -s).
J'ai activé mon compte root , je préfère passer par le root plutot que le sudo , question d'habitude.

Citation :
Publié par Lango
Hum... tu l'ouvres comment ton terminal ?
Bah par une icone dans le menu Gnome.

Citation :
Publié par Lango
un petit export DISPLAY=:0 devrait faire l'affaire, mais c'est pas normal que ça ne soit pas fait automatiquement.
Je vais essayer ça.


Citation :
Publié par Lango
Tu fais comment pour passer en root ?
su ? su - ?
su -
Citation :
J'ai activé mon compte root , je préfère passer par le root plutot que le sudo , question d'habitude.
Avec sudo et sudo -s, tu auras la possibilité d ouvrir des fenetres en ayant les droits root. Sinon, fais la méthode de lango.

C est plus pratique et plus rapide avec l habitude,de passer par sudo que par l utilisateur root.
OK , alors là je comprends plus rien de rien !

J'ai essayé le sudo -s , ca me demande le mot de passe , je mets , hop je passe en root , bon , jusque là pas de changement avec le su - , sauf que là , je tappe 'gedit' et ca marche !!!!!
Bon , j'ai pas encore testé si j'ai bien tous les droits du root mais ...
la commande "su" te connecte sous l utilisateur root
la commande "sudo" / "sudo -s" te connecte avec les droits root, mais il n y a pas, au bout du compte d utilisateur root.
Citation :
je tappe 'gedit' et ca marche !!!!!
j'ai pas encore testé si j'ai bien tous les droits du root mais ...
Oui, tu as les droits root sous gedit avec sudo.
C est une différence entre ubuntu et beaucoup d autres distributions,( avec la configuration par défaut).
Citation :
Publié par Landstalker/Mouna
su -
Y'a des chances que ça marche avec su sans avoir à faire le export DISPLAY=:0

Le '-' indique de charger l'environnement de l'utilisateur root, et donc a priori ça désassigne la variable DISPLAY.

De toutes façons, sudo est effectivement beaucoup plus pratique.
pour l'histoire du xhost, j'ai moi aussi ce "probleme" et c bien reglé avec le xhost (j'ai une debian sarge par contre...)

donc la manip :
user@monposte$ xhost +
user@monposte$ su -
root@monposte# kate

normùalement, ca passe sans problemes.

Le xhost +, c'est l'utilisateur actuellement sur le mode graphique qui peut autoriser . En gros, le premier utilisateur connecté sous X a tous les droits sous X, meme de bloquer le root a utiliser des logiciels graphiques. (mais bon, le root, il éteint le serveur X et l'utilisateur est bien emmerdé )
Citation :
Publié par jolan
C est plus pratique et plus rapide avec l habitude,de passer par sudo que par l utilisateur root.
J'ai quand même de gros doutes la dessus
Quand tu as un seul truc à faire je dis pas, mais quand tu doit enchaîner les appels en root (genre apt-get update, apt-get upgrade, apt-get install wine and sex ( ) et configuration d'autres trucs), ca devient vite saoulant de se taper un sudo avant chaque.

Enfin comme d'hab, chacun voit midi à sa porte, mais perso sudo me gave vite
Citation :
ca devient vite saoulant de se taper un sudo avant chaque.
Tu tapes : sudo -s et tu as les droits root dans le shell pour toutes les commandes que tu tapes .
Ok, au temps pour moi alors
Donc au final tu as tapé 5 lettres de plus pour avoir la même chose

Enfin après c'est juste 2 visions différentes, perso je préfère la méthode su par sécurité.
Si quelqu'un vient à chopper mon mot de passe utilisateur, il pourra pas faire grand mal à la machine (sachant que je peux rien faire via sudo, il devra craquer le mot de passe root), alors qu'avec sudo bah il peut devenir root sur ma machine directement ou presque.

Bon après évidemment, faudra vraiment qu'on m'en veuille pour hacker ma machine, vu ce qu'il y a dessus
Répondre
  • »
 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés