Trucs:Se logguer automatiquement sous X

De Lea Linux
Aller à la navigation Aller à la recherche

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 GDM, 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.

0. Prérequis

  • Une installation qui fonctionne
  • GCC
  • C'est tout ...

1. 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 tappez :

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.

2. 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.)

3. 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. Alors, ouvrez le fichier ~/.bashrc et collez ces lignes au début si votre ligne (1) commençait bien par c1 :

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/vc/1 ] ; then

  startx

fi

Dans le cas contraire, préférez :

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 !

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