Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Trucs:Se logguer automatiquement sous X


Comment connecter automatiquement un utilisateur au démarrage ?

Comment connecter automatiquement un utilisateur au démarrage ?

Comme ça peut être agréable de se retrouver directement devant son bureau après le démarrage de son ordinateur, sans avoir besoin de rentrer un quelconque mot de passe ! Il est possible d'obtenir ce résultat sous Linux en configurant un gestionnaire de démarrage comme KDM, GDM ou WDM mais c'est une méthode "lourde" qui ralentit le démarrage. Il existe une autre méthode, c'est celle qui est décrite dans cette fiche ...

REMARQUE : Pour la suite, X désigne le login de l'utilisateur à connecter et ~ son répertoire personnel.

Prérequis

  • Une installation qui fonctionne
  • GCC

Un peu de code

Pour commencer, nous allons devoir compiler un petit programme en C. Pas d'inquiétude, tout est détaillé ! Commencez par ouvrir un éditeur de texte et collez le code suivant (en n'oubliant pas de remplacer X par le nom de l'utilisateur à connecter) :

int main() 
{execlp("login","login","-f","X",0);}

Sauvegardez dans un dossier sous le nom log_X.c et, dans ce même dossier, ouvrez un terminal avec les droits de root et tapez :

gcc -o log_X log_X.c
mv ./log_X /usr/sbin/
chown root /usr/sbin/log_X
chmod a+x /usr/sbin/log_X
.

Lancer log_X au démarrage

Ouvrez, toujours en root, le fichier /etc/inittab et cherchez, dans la session #TERMINALS, une ligne du type :

c1:2345:respawn:/sbin/agetty 38400 tty1 linux (1)

puis remplacez-la par :

c1:2345:respawn:/sbin/agetty -n -l /usr/sbin/log_X 38400 tty1 linux (2)

(Pour cette étape, on peut observer des différences selon les distributions. Si votre ligne n'est pas exactement (1), ne faites pas un copier-coller de (2), ajoutez simplement au bon endroit -n -l /usr/sbin/log_X.)

Démarrer l'environnement graphique

Si vous voulez uniquement vous connecter en mode texte, restez-en là, mais ce n'est probablement pas votre cas.

Redémarrez l'ordinateur. Vous devriez vous retrouver connecté avec votre utilisateur dans une console. Tapez echo $(tty) et notez le résultat, de la forme /dev/tty1.

Ouvrez le fichier ~/.bashrc et collez ces lignes au début, en remplaçant /dev/tty1 par la ligne obtenue :

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ] ; then
   startx
fi

Ensuite, pour que vous soyez connecté sur votre environnement de bureau préféré, ajoutez la ligne suivante au fichier ~/.xinitrc :

exec Z

où Z est fluxbox (ou startfluxbox) si vous utilisez Fluxbox, startgnome pour Gnome, startkde pour KDE, etc ...

Redémarrez, ça devrait marcher maintenant !

Avertissement

Bien que cette méthode soit pratique et rapide, elle n'est pas très bonne d'un point de vue sécurité et ne devrait en aucun cas être utilisée sur un ordinateur accessible physiquement à des personnes en qui vous n'avez pas confiance ou se trouvant sur un réseau local important.

Copyright

© 10/2005 Utilisateur:AlSim

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 2.0 :
http://creativecommons.org/licenses/by-sa/2.0/
Views
Jump to: navigation, search
Personal tools

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA