Démarrage automatique sur un compte utilisateur sans frappe de mot de passe
Il est parfois utile de pouvoir lancer un système sous un compte utilisateur de façon automatique (c-à-d sans se logguer manuellement au système) par exemple pour une borne internet ou une machine dans une exposition itinérante, ou simplement pour une personne réfractaire à l’informatique (ma grand-mère pour ne citer qu’elle).
Tout se passe dans le fichier de démarrage /etc/inittab
. Le but du jeu est de compiler un petit programme en C (autologin.c) et de le lancer sur la première console au démarrage.
- Programme
autologin.c
int main(){
execlp("login","login","-f","toto",0);
}
Biensûr, on doit remplacer « toto
» par le nom du compte utilisateur visé !!
Puis on le compile :
toto:~$ gcc -o autologin autologin.c
puis on copie le binaire dans /usr/sbin/autologin
(ne pas oublier de rendre root proprio du binaire et de lui donner les droits d’exécution).
/etc/inittab
trouver dans /etc/inittab
la ligne :
1:2345:respawn:/sbin/getty 38400 tty1
et la remplacer par :
1:2345:respawn:/sbin/getty -n -l /usr/sbin/autologin 38400 tty1
Il ne reste plus qu’à modifier le fichier ~/bash_profile
pour lancer le programme souhaité sur la bonne console.
~/.bash_profile
Dans ce fichier, rajouter après la commande umask 022
:
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
startx
fi
où « startx
» correspond au(x) programme(s) à exécuter (mettre le chemin absolu !).
Puis redémarrer votre machine. Il suffira de changer de console virtuelle pour récupérer la main en cas de problème…
Remarque 1 : tout ceci n’est pas très séquïour donc ne pas faire n’importe quoi (à ne pas utiliser sur des machines reliées à un réseau quelconque).
Remarque 2 : Sequanux est pas responsable de la mauvaise utilisation de ce script et toussa…
Remarque 3 : cet article est très (très !) largement inspiré de linuxgazette (http://www.linuxgazette.com/book/view/6916)…