OVH Cloud OVH Cloud

Exécuter une application X à partir de Windows

1 réponse
Avatar
Zoupla
Bonjour, je me sers depuis plusieurs années d'applis me permettant d'ouvrir
des sessions sous X à partir de mon PC (XWin32 et depuis 1 an cygwin +
xfree) et ça a toujours fonctionné à merveille.

Mais, il y a un truc qui me chagrine, j'en appelle donc au gourous ;-)

Serait-il possible de lancer une application sous X sans qu'il y ait
d'écran de login et sans aucune possibilité de ne rien faire d'autre que
d'utiliser l'application en question, puis en fin d'application : fin de la
session.

Par exemple, imaginons que je conçoive une appli de gestion de fournitures.
Je la fait tourner sur un serveur Linux, tous les postes clients sont sous
Windows.
Sur le poste d'un utilisateur lamba, il y a une procédure qui démarre xfree
(sous cygwin en l'occurence), outrepasse l'écran de login en fournissant
les bonnes infos, puis on zappe KDE ou Gnome ou n'importe quoi d'autre au
profit d'un gestionnaire de fenêtre de base, l'appli de gestion de
fournitures se lance, on peut l'utiliser sans avoir accès à quoi que ce
soit d'autre, et quand on quitte la session se termine...

Je me dit que la situation a du se présenter des centaines de milliers de
fois dans les grandes entreprises... Alors comment s'y prend-on ?

Et en plus, il faudrait faire ça sur un serveur linux qui dispose quand
même de KDE et de tout le reste...

Si vous avez une piste, un lien ou un parchemin je suis preneur !

1 réponse

Avatar
Zoupla
TiChou - :


Voici mon début de solution :

On va prendre mozilla comme application sur le Linux qui devra être
lancé par les postes Windows.

Sur la machine Linux on crée le compte mozilla comme suit :
# useradd -d /home/mozilla -m -k /dev/null -s /usr/bin/mozilla mozilla

On crée le couple de clés qui va être associé au compte mozilla :
# mkdir /home/mozilla/.ssh
# cd /home/mozilla/.ssh
# ssh-keygen -b 1024 -t rsa -f id_rsa -P ""
# mv id_rsa.pub authorized_keys2
# chown -R mozilla .
# chmod 700 .
# chmod 600 *

Sur les postes Windows, on place la clé id_rsa générée sur le Linux
dans le répertoire home cygwin, par exemple dans ~/.ssh/id_rsa.mozilla
: $ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/id_rsa.mozilla
(on insère la clé id_rsa générée sur le Linux, :wq!)
$ chmod 600 .ssh/id_rsa.mozilla

Ensuite, on crée le script mozilla.sh suivant sur les postes Windows :

#!/bin/sh

export DISPLAY7.0.0.1:0.0
XWin -screen 0 800 600&
ssh -X -C -i /home/user/.ssh/id_rsa.mozilla
kill `pidof XWin`

Il ne reste plus qu'à lancer le script mozilla.sh, via un raccourci du
genre "c:cygwinbinbash.exe -c '/path/vers/mozilla.sh'", sur les
postes Windows et obtenir le résultat souhaité.

En espérant vous avoir mis sur une bonne voie et de n'avoir pas commis
d'erreur.



Merci beaucoup pour ces infos... Me servant déjà de ssh (avec Putty) ça a
fonctionné assez bien !

Deux questions supplémentaires :

1) man ssh semble indiquer que l'utilisation de l'option -X n'est pas
recommandée pour des raisons de sécurité, d'ailleurs lors du login
j'obtiens un warning "Warning: No xauth data; using fake authentication
data for X11 forwarding."

2) si une script shell est associé par défaut à l'utilisateur "mozilla",
et que ce shell lance l'application en question est que bel et bien
personne ne pourra passer sous shell d'aucune manière ?



Enfin, pour préciser le but de ces questions : je me demandais (par
curiosité) si ce type de technique ne pourrait pas être utilisée pour
développer une application avec une interface X en lieu et place des
sempiternels scripts php et de leur mode de programmation à la chadok
(pour une utilisation sur un intranet bien sur).