lancer startx automatiquement au boot ( autologin sans truc-dm ;-)

Le
Philippe Weill
bonjour
je cherche à lancer automatiquement un startx sous un utilisateur particulier
directement au boot sans utiliser kdm ou gdm sur une mandriva 2008.1


en faisant du style :

su - user -c ' startx ' directement dans l'inittab

on se heurte au probleme de droit sur la console ( udev et pam ) et
là je doit dire que je ne trouve pas
[root@dhcp-58 init.d]# su vmplayer -c 'startx :0'
xauth: creating new authority file /home/vmplayer/.serverauth.5787

Authentication failed - cannot start X server.
Perhaps you do not have console ownership?giving up.



si il y en a qui ont des idées

merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #6354331
Philippe Weill :

je cherche à lancer automatiquement un startx sous un utilisateur particulier
directement au boot sans utiliser kdm ou gdm sur une mandriva 2008.1


en faisant du style :

su - user -c ' startx ' directement dans l'inittab

on se heurte au probleme de droit sur la console ( udev et pam ) et
là je doit dire que je ne trouve pas


Je ferais plutôt quelque chose du genre remplacer le :

/sbin/getty 38400 tty1

par :

/sbin/getty -n -l /root/login-startx 38400 tty1

et dans /root/login-startx, tu mets :

#!/bin/sh

exec /bin/login -f user

et mettre startx comme shell de login pour cet utilisateur.

Philippe Weill
Le #6396571
Luc Habert wrote:
Philippe Weill :

je cherche à lancer automatiquement un startx sous un utilisateur particulier
directement au boot sans utiliser kdm ou gdm sur une mandriva 2008.1


en faisant du style :

su - user -c ' startx ' directement dans l'inittab

on se heurte au probleme de droit sur la console ( udev et pam ) et
là je doit dire que je ne trouve pas


Je ferais plutôt quelque chose du genre remplacer le :

/sbin/getty 38400 tty1

par :

/sbin/getty -n -l /root/login-startx 38400 tty1

et dans /root/login-startx, tu mets :

#!/bin/sh

exec /bin/login -f user

et mettre startx comme shell de login pour cet utilisateur.


effectivement merci pour la solution

avec agetty ça marche bien

Cordialement


Cumbalero
Le #6396981

effectivement merci pour la solution


Autre possibilité: kdm et gdm peuvent connecter automatiquement un
utilisateur sous X au démarrage.

A+
JF

Philippe Weill
Le #6397661
Cumbalero wrote:

effectivement merci pour la solution


Autre possibilité: kdm et gdm peuvent connecter automatiquement un
utilisateur sous X au démarrage.


kdm et gdm font partie de truc-dm ;-) dont je me passerais bien
car c'est au minimum une centaine de packages supplémentaires sur la
distribution de base alors que l'on utilise xfce4.4 comme window manager

pour donner quelques précisions , c'est un projet de virtualisation d'OS sur
poste de travail pour un organisme de formation



A+
JF



Nicolas George
Le #6397651
Luc Habert wrote in message
/sbin/getty -n -l /root/login-startx 38400 tty1


Ça va Hector ?

C'est quand même ultimement beurk, comme solution. Ça monopolise une console
virtuelle, et ce uniquement pour le plaisir de permettre à n'importe qui de
flinguer le serveur X11 par erreur d'un simple Ctrl-C.

La solution correcte à la question initiale, c'est de lancer le serveur X11
avec les droits de root (de toutes façons il en a besoin), et de perdre les
privilèges ensuite. Donc quelque chose comme :

xinit /etc/vmplayer/xinitrc-root -- /usr/bin/Xorg :0

Avec dans /etc/vmplayer/xinitrc-root quelque chose comme :

exec env -i su vmplayer -c "exec /etc/vmplayer/xinitrc"

(Je conseille fortement, une fois que tout est en place et fonctionne, de
faire un « ps auxwwf | less -S » et de regarder s'il ne reste pas des « sh
-c » un peu partout, et si c'est le cas de les enlever en ajoutant un exec
là où il faut.)

Le plus dur dans l'histoire, c'est de créer un fichier d'autorisation et de
le passer à la fois au client et au serveur. Ici, c'est assez facile, parce
que le client ne fait que ça, donc il n'est pas nécessaire de faire
attention aux autres autorisations déjà présentes. On peut donc faire
quelque chose comme :

export XAUTHORITY=/tmp/foo/bar
xauth add $HOST/unix:0 MIT-MAGIC-COOKIE-1 `mcookie`

Le fichier résultant doit être alors

- passé en argument au serveur X11 avec l'option -auth ;

- passé aux clients, soit en le désignant par la variable d'environnement
XAUTHORITY, soit en le copiant dans ~/.Xauthority (la seconde solution
étant plus robuste).

Il faut évidemment faire attention aux droits pour que les cookies restent
confidentiels.

Erwan David
Le #6397641
Philippe Weill
Cumbalero wrote:

effectivement merci pour la solution


Autre possibilité: kdm et gdm peuvent connecter automatiquement un
utilisateur sous X au démarrage.


kdm et gdm font partie de truc-dm ;-) dont je me passerais bien
car c'est au minimum une centaine de packages supplémentaires sur la
distribution de base alors que l'on utilise xfce4.4 comme window
manager


xdm est NETTEMENT plus léger.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé



Philippe Weill
Le #6398111
Erwan David wrote:

xdm est NETTEMENT plus léger.



oui mais il ne fait pas à ma connaissance d'autologin

Nicolas George
Le #6398101
Nicolas George wrote in message
- passé en argument au serveur X11 avec l'option -auth ;

- passé aux clients, soit en le désignant par la variable d'environnement
XAUTHORITY, soit en le copiant dans ~/.Xauthority (la seconde solution
étant plus robuste).


Petite précision : il faut en particulier qu'il soit passé à xinit lui-même.
Donc si on a deux exemplaires du fichier :

/var/lib/vmplayer/Xauthority (privé pour root)
/home/vmplayer/.Xauthority (privé pour vmplayer)

le mieux est de mettre XAUTHORITY=/var/lib/vmplayer/Xauthority dans
l'environnement avant de lancer xinit. L'« env -i » se chargera de l'enlever
un peu plus tard.

Philippe Weill
Le #6398511
Nicolas George wrote:
Luc Habert wrote in message
/sbin/getty -n -l /root/login-startx 38400 tty1


Ça va Hector ?

C'est quand même ultimement beurk, comme solution. Ça monopolise une console
virtuelle, et ce uniquement pour le plaisir de permettre à n'importe qui de
flinguer le serveur X11 par erreur d'un simple Ctrl-C.



bon pour l'instant je dois avancer sur d'autres choses donc j'en reste à la
solution qui monopolise une console avec tout de même quelques modifications


inittab
6:3:respawn:/sbin/mingetty --noclear --autologin vmplayer tty6


.bash_profile de vmplayer ( appartenant à root )
if [ "`tty`" = "/dev/tty6" ]
then
trap "" SIGINT
startx
exit
fi

j'exporerais l'autre piste plus tard



La solution correcte à la question initiale, c'est de lancer le serveur X11
avec les droits de root (de toutes façons il en a besoin), et de perdre les
privilèges ensuite. Donc quelque chose comme :

xinit /etc/vmplayer/xinitrc-root -- /usr/bin/Xorg :0

Avec dans /etc/vmplayer/xinitrc-root quelque chose comme :

exec env -i su vmplayer -c "exec /etc/vmplayer/xinitrc"

(Je conseille fortement, une fois que tout est en place et fonctionne, de
faire un « ps auxwwf | less -S » et de regarder s'il ne reste pas des « sh
-c » un peu partout, et si c'est le cas de les enlever en ajoutant un exec
là où il faut.)

Le plus dur dans l'histoire, c'est de créer un fichier d'autorisation et de
le passer à la fois au client et au serveur. Ici, c'est assez facile, parce
que le client ne fait que ça, donc il n'est pas nécessaire de faire
attention aux autres autorisations déjà présentes. On peut donc faire
quelque chose comme :

export XAUTHORITY=/tmp/foo/bar
xauth add $HOST/unix:0 MIT-MAGIC-COOKIE-1 `mcookie`

Le fichier résultant doit être alors

- passé en argument au serveur X11 avec l'option -auth ;

- passé aux clients, soit en le désignant par la variable d'environnement
XAUTHORITY, soit en le copiant dans ~/.Xauthority (la seconde solution
étant plus robuste).

Il faut évidemment faire attention aux droits pour que les cookies restent
confidentiels.



Kevin Denis
Le #6398731
On 2008-04-24, Philippe Weill

xdm est NETTEMENT plus léger.


oui mais il ne fait pas à ma connaissance d'autologin

xdm lance xlogin et le fichier Xsetup. xlogin est récupéré depuis le

Xresources.
Je suis quasiment sur qu'il y a moyen de tweaker soit le Resources,
soit le Xsetup pour t'autologuer.
Mais la syntaxe, c'est pas simple à comprendre.
--
Kevin


Publicité
Poster une réponse
Anonyme