PAM (Pluggable Authentification Module) est le système qui permet l'authentification de chaque utilisateur sous GNU/Linux.
Pour plus d'information sur PAM je vous renvoie sur l'introduction à PAM écrite par Sébastien Augereau.
Le but de cette page est d'utiliser un appareil bluetooth (un téléphone par exemple) pour vous identifier à votre session, ainsi vous n'aurez plus besoin de taper votre mot de passe à chaque connexion mais uniquement votre nom d'utilisateur.
La première étape est de connaitre l'adresse MAC de votre appareil bluetooth.
Pour ce faire, placez votre appareil bluetooth à proximité de votre ordinateur et tapez la commande suivante :
$ hcitool scan Scanning ... 00:1E:E1:6A:D4:41 Mizuho
Notez l'adresse MAC (00:1E:E1:6A:D4:41) et le nom de l'appareil (Mizuho) pour plus tard.
Les sources sont disponibles à cet endroit.
installez les paquets libpam-dev et libpam-blue.
Pour commencer nous allons éditer le fichier /etc/security/bluesscan.conf.
Ce fichier devrait ressembler à ceci :
general { # the normal timeout for scanning # watch out for a to tiny timeslot for scanning # values between 3 and 15 seconds are valid timeout = 3; } # configuration for user korzendorfer korzendorfer = { # bluetooth device name name = tux; # bluetooth mac address bluemac = 54:34:34:34:34:34; # a seaparate timeout timeout = 10; } (...)
Changez dans ce fichier le nom de l'appareil bluetooth et son adresse MAC par le nom et l'adresse MAC récupérée un peu plus tôt par le scan ainsi que l'utilisateur par le nom de votre session. Pour mon exemple le fichier devient donc :
(...) nathan = { # bluetooth device name name = Mizuho; # bluetooth mac address bluemac = 00:1E:E1:6A:D4:41; # a seaparate timeout timeout = 10; } (...)
Pam Blue est configuré. Il faut donc maintenant dire au système d'utiliser PAM Blue pour l'authentification à chaque fois que ce sera possible.
Nous allons faire en sorte que l'identification de session gnome se fasse par PAM Blue à la place de l'identification classique.
Pour ce faire, éditez le fichier /etc/pam.d/gdm (pour Kubuntu, éditez /etc/pam.d/kdm, pour Xubuntu xdm, etc.)
Pour les distribution Ubuntu utilisant LightDM (par exemple la version 12.04) le fichier à modifier est /etc/pam.d/lightdm
Le fichier ressemble à ceci :
#%PAM-1.0 auth requisite pam_nologin.so auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale @include common-auth auth optional pam_gnome_keyring.so @include common-account session required pam_limits.so @include common-session session optional pam_gnome_keyring.so auto_start @include common-password
Nous allons le modifier pour qu'il ressemble à ceci :
#%PAM-1.0 auth requisite pam_nologin.so auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale auth sufficient pam_blue.so @include common-auth auth optional pam_gnome_keyring.so (...)
Voilà. C'est terminé. Redémarrer session et une fois sur le login entrer votre nom d'utilisateur et si tout s'est bien passé ainsi que si votre périphérique est bien à proximité vous n'aurez pas à rentrer votre mot de passe pour entrer sur votre session.