Imposible de lancer appli graphique dans console root
6 réponses
Matlerouge
Bonjour
Je demarre X.
Si, dans une fenetre terminal je rentre par exemple emacs /fich, une
fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces root.
J'ecris emacs /fich, et on me dit :
mattordi:/home/matt# emacs /etc/fstab
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
emacs: Cannot connect to X server :0.0.
Check the DISPLAY environment variable or use `-d'.
Also use the `xhost' program to verify that it is set to permit
connections from your machine.
Donc si je fais un xhost sous ma console root j'ai :
mattordi:/home/matt# xhost
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
mattordi:/home/matt# exit
exit
matt@mattordi:~$ xhost
access control enabled, only authorized clients can connect
Donc ca marche sous un user normal
Est-ce a cause de kdm par exemple qui empecherais root d'avoir acces a X ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Tatoute
Bonjour
Je demarre X. Si, dans une fenetre terminal je rentre par exemple emacs /fich, une fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces root. J'ecris emacs /fich, et on me dit : mattordi:/home/matt# emacs /etc/fstab Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
emacs: Cannot connect to X server :0.0. Check the DISPLAY environment variable or use `-d'. Also use the `xhost' program to verify that it is set to permit connections from your machine.
:~$ xhost access control enabled, only authorized clients can connect
xhost te dit:
le controle d'accès (au serveur X) est actif. Seuls les applications autorisées peuvent se connecter (au serveur X).
Ben root n'est pas autorisé, voila tout.
voir man xhost pour affiner les permissions.
Michel.
Bonjour
Je demarre X.
Si, dans une fenetre terminal je rentre par exemple emacs /fich, une
fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces
root. J'ecris emacs /fich, et on me dit :
mattordi:/home/matt# emacs /etc/fstab Xlib: connection to ":0.0" refused
by server Xlib: No protocol specified
emacs: Cannot connect to X server :0.0. Check the DISPLAY environment
variable or use `-d'. Also use the `xhost' program to verify that it is
set to permit connections from your machine.
matt@mattordi:~$ xhost
access control enabled, only authorized clients can connect
xhost te dit:
le controle d'accès (au serveur X) est actif. Seuls les applications
autorisées peuvent se connecter (au serveur X).
Je demarre X. Si, dans une fenetre terminal je rentre par exemple emacs /fich, une fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces root. J'ecris emacs /fich, et on me dit : mattordi:/home/matt# emacs /etc/fstab Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
emacs: Cannot connect to X server :0.0. Check the DISPLAY environment variable or use `-d'. Also use the `xhost' program to verify that it is set to permit connections from your machine.
:~$ xhost access control enabled, only authorized clients can connect
xhost te dit:
le controle d'accès (au serveur X) est actif. Seuls les applications autorisées peuvent se connecter (au serveur X).
Ben root n'est pas autorisé, voila tout.
voir man xhost pour affiner les permissions.
Michel.
Lsom
As-tu fait "man xhost" ???????
xhost +
A toi de voir les conséquences dans le man.
Matlerouge wrote:
Bonjour
Je demarre X. Si, dans une fenetre terminal je rentre par exemple emacs /fich, une fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces root. J'ecris emacs /fich, et on me dit : mattordi:/home/matt# emacs /etc/fstab Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
emacs: Cannot connect to X server :0.0. Check the DISPLAY environment variable or use `-d'. Also use the `xhost' program to verify that it is set to permit connections from your machine.
Donc si je fais un xhost sous ma console root j'ai :
mattordi:/home/matt# xhost Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
xhost: unable to open display ":0.0" mattordi:/home/matt# exit exit :~$ xhost access control enabled, only authorized clients can connect
Donc ca marche sous un user normal Est-ce a cause de kdm par exemple qui empecherais root d'avoir acces a X ?
Merci
As-tu fait "man xhost" ???????
xhost +
A toi de voir les conséquences dans le man.
Matlerouge wrote:
Bonjour
Je demarre X.
Si, dans une fenetre terminal je rentre par exemple emacs /fich, une
fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces
root.
J'ecris emacs /fich, et on me dit :
mattordi:/home/matt# emacs /etc/fstab
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
emacs: Cannot connect to X server :0.0.
Check the DISPLAY environment variable or use `-d'.
Also use the `xhost' program to verify that it is set to permit
connections from your machine.
Donc si je fais un xhost sous ma console root j'ai :
mattordi:/home/matt# xhost
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
mattordi:/home/matt# exit
exit
matt@mattordi:~$ xhost
access control enabled, only authorized clients can connect
Donc ca marche sous un user normal
Est-ce a cause de kdm par exemple qui empecherais root d'avoir acces a X ?
Je demarre X. Si, dans une fenetre terminal je rentre par exemple emacs /fich, une fenetre graphique s'ouvre : c'est emacs.
Maintenant, dans cette meme fenetre je fais un su, pour avoir un acces root. J'ecris emacs /fich, et on me dit : mattordi:/home/matt# emacs /etc/fstab Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
emacs: Cannot connect to X server :0.0. Check the DISPLAY environment variable or use `-d'. Also use the `xhost' program to verify that it is set to permit connections from your machine.
Donc si je fais un xhost sous ma console root j'ai :
mattordi:/home/matt# xhost Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
xhost: unable to open display ":0.0" mattordi:/home/matt# exit exit :~$ xhost access control enabled, only authorized clients can connect
Donc ca marche sous un user normal Est-ce a cause de kdm par exemple qui empecherais root d'avoir acces a X ?
Merci
Matlerouge
Lsom wrote:
As-tu fait "man xhost" ???????
Ben oui, j'ai beau mettre xhost +root, xhost root ou xhost +, toujours
le meme effet :
mattordi:/# xhost + Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
xhost: unable to open display ":0.0" mattordi:/#
xhost +
A toi de voir les conséquences dans le man.
Sauf erreur, ca ne fonctionne pas comme le prevoit le man, d'ou ma question !
Merci
Lsom wrote:
As-tu fait "man xhost" ???????
Ben oui, j'ai beau mettre xhost +root, xhost root ou xhost +, toujours
le meme effet :
mattordi:/# xhost +
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
mattordi:/#
xhost +
A toi de voir les conséquences dans le man.
Sauf erreur, ca ne fonctionne pas comme le prevoit le man, d'ou ma
question !
On Mon, 06 Sep 2004 11:36:30 +0200, Matlerouge wrote:
Lsom wrote:
As-tu fait "man xhost" ???????
Ben oui, j'ai beau mettre xhost +root, xhost root ou xhost +, toujours
le meme effet :
mattordi:/# xhost + Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
Il faut que tu le lances en tant qu'utilisateur authorisé à se servir de X, pas en tant que root. xhost +localhost marche en général pas mal...
Michel Tatoute
Lsom wrote:
As-tu fait "man xhost" ???????
Ben oui, j'ai beau mettre xhost +root, xhost root ou xhost +, toujours
le meme effet :
mattordi:/# xhost + Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
xhost: unable to open display ":0.0" mattordi:/#
xhost +
A toi de voir les conséquences dans le man.
Sauf erreur, ca ne fonctionne pas comme le prevoit le man, d'ou ma question !
Tu te trompes, ca marche parfaitement. Je t'explique:
X11 (dans le cas qui nous occupe en la personne de XFree86 ) est un serveur TCP/ IP (pour simplifier) , c'est a dire un serveur réseau qui attends des connexions sur le port 6000 (simplification encore). Ce serveur se charge grosso modo d'executer requetes graphiques lues dans le tuyau tcp et d'ecrire les évenements dans le meme tuyau (evenements souris, clavier, demandes de retracage ... etc).
Une appliaction cliente se connecte et fait executer ce qu'elle veut au serveur.
C'est assez genant que le tuyau soit aussi ouvert (tout le monde qui peut ouvrir le port 6000 sur la machine du serveur peut faire faire ce qu'il veut à l'interface graphique, notemment écouter le clavier.
Donc on a ajouté un mécanisque de sécurité, qui de façon simplifieé consiste en un jeton. Au lancement de X (ou de la session) on tire au hasard une clef d'identification que l'on stocke sur la machine cliente (la machine qui semble devoir faire tourner les clients) dans un fichier uniquement accessibleà l'utilisateur qui a crée une session, et dont le path est lui aussi propre à l'utilisateur.
Chaque client qui se connecte au serveur récupere cette clef (s'il peut) et l'envoie avant tout autre conversation au serveur. Si ce n'est pas la clef attendue, et sauf si on a dit au serveur de ne pas s'occuper de la clef, a connexion est aussitot coupée.
On peut aussi donc demander au serveur d'etre plus coulant et d'accepter des connexionsvenant de telle ou telle n° IP, sans regarder la clef.. et peut etre d'autre passe droits.... l'outil pour cela s'appelle xhost
Ce qui t'arrive c'es que root n'envoie pas la bonne clef. C'est normal car il cherche la clef de root alors que c'est la clef de "lsom" (au hasard ton login) qu'il faut.
Bien sur root pourrait outrepasser les droits de lecture du fichier de la clef pour la lire quand meme (alors qu'elle n'est pas read pour d'autres que lsom), mais de toute façon il ne la cherche pas là ou elle est...
quand à ton essai de xhost sous root..... ben xhost est une application cliente de X comme une autre... et donc xhost s'est fait jeter comme tout autre client root.
Capito?
Merci
De nada.
Lsom wrote:
As-tu fait "man xhost" ???????
Ben oui, j'ai beau mettre xhost +root, xhost root ou xhost +, toujours
le meme effet :
mattordi:/# xhost +
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
mattordi:/#
xhost +
A toi de voir les conséquences dans le man.
Sauf erreur, ca ne fonctionne pas comme le prevoit le man, d'ou ma
question !
Tu te trompes, ca marche parfaitement. Je t'explique:
X11 (dans le cas qui nous occupe en la personne de XFree86 ) est un
serveur TCP/ IP (pour simplifier) , c'est a dire un serveur réseau qui
attends des connexions sur le port 6000 (simplification encore). Ce
serveur se charge grosso modo d'executer requetes graphiques lues dans le
tuyau tcp et d'ecrire les évenements dans le meme tuyau (evenements souris, clavier, demandes de retracage ... etc).
Une appliaction cliente se connecte et fait executer ce qu'elle veut au
serveur.
C'est assez genant que le tuyau soit aussi ouvert (tout le monde qui peut
ouvrir le port 6000 sur la machine du serveur peut faire faire ce qu'il
veut à l'interface graphique, notemment écouter le clavier.
Donc on a ajouté un mécanisque de sécurité, qui de façon simplifieé
consiste en un jeton. Au lancement de X (ou de la session) on tire au
hasard une clef d'identification que l'on stocke sur la machine cliente
(la machine qui semble devoir faire tourner les clients) dans un fichier
uniquement accessibleà l'utilisateur qui a crée une session, et dont le
path est lui aussi propre à l'utilisateur.
Chaque client qui se connecte au serveur récupere cette clef (s'il peut)
et l'envoie avant tout autre conversation au serveur. Si ce n'est pas la
clef attendue, et sauf si on a dit au serveur de ne pas s'occuper de la
clef, a connexion est aussitot coupée.
On peut aussi donc demander au serveur d'etre plus coulant et d'accepter
des connexionsvenant de telle ou telle n° IP, sans regarder la clef.. et
peut etre d'autre passe droits.... l'outil pour cela s'appelle xhost
Ce qui t'arrive c'es que root n'envoie pas la bonne clef. C'est normal car
il cherche la clef de root alors que c'est la clef de "lsom" (au hasard
ton login) qu'il faut.
Bien sur root pourrait outrepasser les droits de lecture du fichier de la
clef pour la lire quand meme (alors qu'elle n'est pas read pour d'autres
que lsom), mais de toute façon il ne la cherche pas là ou elle est...
quand à ton essai de xhost sous root..... ben xhost est une application
cliente de X comme une autre... et donc xhost s'est fait jeter comme tout
autre client root.
Ben oui, j'ai beau mettre xhost +root, xhost root ou xhost +, toujours
le meme effet :
mattordi:/# xhost + Xlib: connection to ":0.0" refused by server Xlib: No protocol specified
xhost: unable to open display ":0.0" mattordi:/#
xhost +
A toi de voir les conséquences dans le man.
Sauf erreur, ca ne fonctionne pas comme le prevoit le man, d'ou ma question !
Tu te trompes, ca marche parfaitement. Je t'explique:
X11 (dans le cas qui nous occupe en la personne de XFree86 ) est un serveur TCP/ IP (pour simplifier) , c'est a dire un serveur réseau qui attends des connexions sur le port 6000 (simplification encore). Ce serveur se charge grosso modo d'executer requetes graphiques lues dans le tuyau tcp et d'ecrire les évenements dans le meme tuyau (evenements souris, clavier, demandes de retracage ... etc).
Une appliaction cliente se connecte et fait executer ce qu'elle veut au serveur.
C'est assez genant que le tuyau soit aussi ouvert (tout le monde qui peut ouvrir le port 6000 sur la machine du serveur peut faire faire ce qu'il veut à l'interface graphique, notemment écouter le clavier.
Donc on a ajouté un mécanisque de sécurité, qui de façon simplifieé consiste en un jeton. Au lancement de X (ou de la session) on tire au hasard une clef d'identification que l'on stocke sur la machine cliente (la machine qui semble devoir faire tourner les clients) dans un fichier uniquement accessibleà l'utilisateur qui a crée une session, et dont le path est lui aussi propre à l'utilisateur.
Chaque client qui se connecte au serveur récupere cette clef (s'il peut) et l'envoie avant tout autre conversation au serveur. Si ce n'est pas la clef attendue, et sauf si on a dit au serveur de ne pas s'occuper de la clef, a connexion est aussitot coupée.
On peut aussi donc demander au serveur d'etre plus coulant et d'accepter des connexionsvenant de telle ou telle n° IP, sans regarder la clef.. et peut etre d'autre passe droits.... l'outil pour cela s'appelle xhost
Ce qui t'arrive c'es que root n'envoie pas la bonne clef. C'est normal car il cherche la clef de root alors que c'est la clef de "lsom" (au hasard ton login) qu'il faut.
Bien sur root pourrait outrepasser les droits de lecture du fichier de la clef pour la lire quand meme (alors qu'elle n'est pas read pour d'autres que lsom), mais de toute façon il ne la cherche pas là ou elle est...
quand à ton essai de xhost sous root..... ben xhost est une application cliente de X comme une autre... et donc xhost s'est fait jeter comme tout autre client root.
Capito?
Merci
De nada.
Matlerouge
Michel Tatoute wrote: (...)
Capito?
Si ho capito, ca marche maintenant avec un petit "xhost local:root".
Merci pour l'explication c interessant.
Michel Tatoute wrote:
(...)
Capito?
Si ho capito, ca marche maintenant avec un petit "xhost local:root".