Sommaire |
Le système démarre automatiquement le système graphique sans avoir à demander un mot de passe. Le fichier /etc/default/default_login contient sur une seule ligne le nom de l'utilisateur à créer. Si le fichier n'existe pas, l'utilisateur leneuf sera utilisé. Cet utilisateur pourra être utilisé pour configurer la première fois la machine.
L'autologin est activé une seule fois par démarrage du système d'exploitation. Nous allons utiliser la combinaison du programme getty et login de busybox pour réaliser cette fonction.
Nous allons remplacer le programme /usr/bin/login par un simple script shell (/bin/9login) qui fera office de wrapper. Il assurera plusieurs rôles:
Le fichier /etc/inittab est donc modifié comme ci-dessous:
... tty1::once:/sbin/getty 38400 tty1 -n -l /bin/9login tty2::respawn:/sbin/getty 38400 tty2 ...
Login permet de NE PAS vérifier le mot de passe si l'utilisateur qui le lance est root. Cette option se passé en argument à getty.
Login lance automatiquement un shell de login. Dans le .profile, il suffira donc de lancer la session Xwindows pour démarrer les outils.
#!/bin/sh
# Copyright: 9neuf-cegetel
# Licence: GPL
# Get the default login
default_login="leneuf"
if [ -f "/etc/default_login" ]; then
# Only this character set is authorized
/bin/grep -q "[a-zA-Z0-9]*" /etc/default_login
if [ $? -eq 0 ]; then
default_login=$(cat /etc/default_login)
fi
fi
# Test if the user exist
id $default_login >/dev/null 2>&1
if [ $? -eq 0 ]; then
# Create the account directory if it doesn't exist
if [ ! -d /home/$default_login ]; then
/bin/mkdir /home/$default_login
(cd /etc/skel/ ; /bin/cp -a . /home/$default_login/)
/bin/chown -R $default_login:$default_login /home/$default_login
fi
exec /bin/login -f "$default_login"
else
exec /bin/login
fi