« Trucs:Se logguer automatiquement sous X » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
(Comment connecter automatiquement un utilisateur au démarrage ?)
 
Ligne 18 : Ligne 18 :
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) :
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) :


<code>int main() {execlp("login","login","-f","X",0);}</code>.
<code>int main()  
{execlp("login","login","-f","X",0);}</code>


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 :
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 :


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


== 2. Lancer log_X au démarrage ==
== 2. Lancer log_X au démarrage ==
Ligne 47 : Ligne 45 :
Alors, ouvrez le fichier ~/.bashrc et collez ces lignes au début si votre ligne '''(1)''' commençait bien par ''c1'' :
Alors, ouvrez le fichier ~/.bashrc et collez ces lignes au début si votre ligne '''(1)''' commençait bien par ''c1'' :


<code>if [ -z "$DISPLAY" ] && [ $(tty) == /dev/vc/1 ] ; then</code>
<code>if [ -z "$DISPLAY" ] && [ $(tty) == /dev/vc/1 ] ; then
 
  startx
<code>startx</code>
fi</code>
 
<code>fi</code>.


Dans le cas contraire, préférez :
Dans le cas contraire, préférez :


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


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


<code>exec Z</code>,
<code>exec Z</code>


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

Version du 24 octobre 2005 à 16:00

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.