ssh et sudo mais pas $ DISPLAY

Habituellement, je le fais sur ssh pour get une application X en utilisant sudo su

 ssh -X server 

Identifiant OKI

 xauth list $DISPLAY 

qui revient à moi

 server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla 

Alors je fais

 sudo su xauth add server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla 

Et après avoir exécuté une application X .. Je comprends, c'est correct.

Le problème est sur Centos7, je fais

 xauth list $DISPLAY 

Et ça ne rapporte rien. J'essaie d'append des cookies magiques MIT donnés par

 xauth list 

Mais bien sûr, cela ne fonctionne pas. Le X-forwarding normal via ssh, sans sudo fonctionne.

Les parameters de sshd sont les mêmes sur 3 servers:

  1. Slackware ŒUVRES
  2. hpux fonctionne
  3. centos7 NE TRAVAILLE PAS

Une autre solution consiste à merge le file .Xauthority de l'user actuel avec celui de l'user root.

  1. ssh user@host
  2. modifiez les permissions du file .Xauthority pour que root y ait également access.
  3. sudo su - root
  4. xauth merge /home/users/user/.Xauthority

Tester

 gedit somefile.log 

Il devrait ouvrir une window gedit.

Solution trouvée. Une méthode alternative copiée à partir de ce blog Utilisation de ce script

 userfirst=sshloginuser usersecond=sudoorsuuser $usersecond@host$ su - $userfirst -c 'xauth list' |\ grep `echo $DISPLAY |\ cut -d ':' -f 2 |\ cut -d '.' -f 1 |\ sed -es/^/:/` |\ xargs -n 3 xauth add 

Ou simplement la consignation en tant qu'user1

 xauth list 

su ou sudo su user2

 xauth add OUTPUTOFXAUTHLIST