« 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 ?)
 
Aucun résumé des modifications
 
(12 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
[[Catégorie:Trucs X Window]]
= Comment connecter automatiquement un utilisateur au démarrage ? =
= Comment connecter automatiquement un utilisateur au démarrage ? =


<div class="leatitre">Comment connecter automatiquement un utilisateur au démarrage ?</div><div class="leapar">[mailto:al_simmons@linuxmail.org Créé par AlSim]</div>
<div class="leatitre">Comment connecter automatiquement un utilisateur au démarrage ?</div>


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 ...
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.'''
'''REMARQUE : Pour la suite, X désigne le login de l'utilisateur à connecter et ~ son répertoire personnel.'''


== 0. Prérequis ==
== Prérequis ==


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


== 1. Un peu de code ... ==
== Un peu de code ==


Pour commencer, nous allons devoir compiler un petit programme en C. Pas d'inquiétude, tout est détaillé !
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) :
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 tapez :


<code>gcc -o log_X log_X.c</code>
<code>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</code>.


<code>mv ./log_X /usr/sbin/</code>
== Lancer log_X au démarrage ==


<code>chown root /usr/sbin/log_X</code>
Ouvrez, toujours en root, le fichier <code>/etc/inittab</code> et cherchez, dans la session <code>#TERMINALS</code>, une ligne du type :


<code>chmod a+x /usr/sbin/log_X</code>.
: <code>c1:2345:respawn:/sbin/agetty 38400 tty1 linux </code> '''(1)'''
 
== 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 :
puis remplacez-la par :


''c1:2345:respawn:/sbin/agetty -n -l /usr/sbin/log_X 38400 tty1 linux'' '''(2)'''.
: <code>c1:2345:respawn:/sbin/agetty -n -l /usr/sbin/log_X 38400 tty1 linux </code> '''(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''.)
(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 <code>-n -l /usr/sbin/log_X</code>.)


== 3. Démarrer l'environnement graphique ==
== 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.  
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'' :


<code>if [ -z "$DISPLAY" ] && [ $(tty) == /dev/vc/1 ] ; then</code>
Redémarrez l'ordinateur. Vous devriez vous retrouver connecté avec votre utilisateur dans une console. Tapez <code>echo $(tty)</code> et notez le résultat, de la forme ''/dev/tty1''.


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


<code>fi</code>.
<code>if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ] ; then
 
  startx
Dans le cas contraire, préférez :
fi</code>
 
<code>if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ] ; then</code>
 
<code>startx</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 ...
Ligne 69 : Ligne 61 :
Redémarrez, ça devrait marcher maintenant !
Redémarrez, ça devrait marcher maintenant !


== 4. Avertissement ==
== 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.
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.
{{Copy|10/2005|[[Utilisateur:AlSim]]|CC-BY-SA}}

Dernière version du 30 mars 2011 à 15:54


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 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/