Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Imposible de lancer appli graphique dans console root

6 réponses
Avatar
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 ?

Merci

6 réponses

Avatar
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.

Avatar
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


Avatar
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

Avatar
no_spam
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...


Avatar
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.


Avatar
Matlerouge
Michel Tatoute wrote:
(...)

Capito?

Si ho capito, ca marche maintenant avec un petit "xhost local:root".

Merci pour l'explication c interessant.