sudo apt-get update && sudo apt-get install libpam-usb pamusb-tools
Il est possible de compiler le paquet pour les distributions n'ayant pas de paquet...
Insérer la clé USB désirée (fonctionne avec une carte de type SD). Vérifier :
- qu'il n'y a pas d'autres clés (évite les confusions !)
- que cette clé est bien accessible (/media...)
sudo pamusb-conf --add-device nom_de_ma_clé
avec nom_de_ma_clé correspond à un nom descriptif... PamUSB propose les clés dispo
Please select the device you wish to add.
* Using "SanDisk Corp. Cruzer Titanium (SNDKXXXXXXXXXXXXXXXX)" (only option)
Which volume would you like to use for storing data ?
* Using "/dev/sda1 (UUID: <6F6B-42FC>)" (only option)
Name : MyDevice
Vendor : SanDisk Corp.
Model : Cruzer Titanium
Serial : SNDKXXXXXXXXXXXXXXXX
Volume UUID : 6F6B-42FC (/dev/sda1)
Save to /etc/pamusb.conf ?
[Y/n] y
Done.
Valider en tapant "y" si c'est bien le bon périphérique...
Choisir le compte système à associer et taper :
sudo pamusb-conf --add-user nom_d_utilisateur
On obtient
Which device would you like to use for authentication ?
* Using "MyDevice" (only option)
User : nom_d_utilisateur
Device : MyDevice
Save to /etc/pamusb.conf ?
[Y/n]
Saisir Y.
Pour vérifier que le processus mis en place fonctionne (association clé usb / user) :
$ pamusb-check nom_d_utilisateur
* Authentication request for user "nom_d_utilisateur" (sudo)
* Device "MyDevice" is connected (good).
* Performing one time pad verification...
* Access granted.
Si à ce stade ça ne marche pas, faire un truc du genre :
sudo apt-get remove --purge libpam-usb pamusb-tools && sudo apt-get autoremove && sudo apt-get install libpam-usb pamusb-tools
Oui, je sais que c'est pas original et que ce n'est pas du troubleshoot !
Maintenant qu'on a déclaré une clé et un user, on configure PAM...
Sauvegarder l'ancienne conf (si si, quand même !!!)
sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.back
et éditer le fichier common-auth...
Deux modes : soit clé nécessaire (clé + mot de passe) soit clé suffisante (clé ou mot de passe).
Rechercher donc la ligne contenant auth *** pam_usb.so et remplacer soit par :
auth required pam_usb.so
soit
auth sufficient pam_usb.so
A ce stade, on peut déjà tester le login avec la clé :
- Fermer la session
- Mettre la clé USB et cliquer sur le user défini plus tôt : il ne demandera plus de mot de passe mais vous loggera directement...
Etape suivante : le verrouillage / déverrouillage de session automatique...
Le PamUSB-agent scrute en permanence le plug-deplug des périphériques pour appliquer si nécessaire des actions.
Editer /etc/pamusb.conf. Sous la section de votre utilisateur rajouter :
<agent event="lock">gnome-screensaver-command --lock</agent>
<agent event="unlock">gnome-screensaver-command --deactivate</agent>
Remplacer gnome-screensaver-command par votre économiseur préféré ! La section ressemblera à quelque-chose comme :
...
<user id="vincent">
<device>
transcend_vincent
</device>
<agent event="lock">gnome-screensaver-command --lock</agent>
<agent event="unlock">gnome-screensaver-command --deactivate</agent>
</user>
...
Sous LXDE, le plus propre c'est de créer un fichier .desktop dans ~/.config/autostart.
Voici le mien : pamusb-agent.desktop
[Desktop Entry]
Type=Application
Exec=/usr/bin/pamusb-agent --daemon
Hidden=true
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[fr_FR]=DpB
Name=PamUSB-Agent
Comment[fr_FR]=
Comment=