Chaque programme qui doit authentifier un utilisateur sous Linux utilise la librairie PAM (Pluggable Authentication Module). Les fichiers de configuration de chaque service se trouvent dans le repertoire /etc/pamd.d. Si vous voulez que votre repertoire personnel soit "mounter" lors de la session graphique. Il faut ajouter les deux lignes qui commancent par "+++" dans le fichier de configuration PAM de votre gestionnaire de connection graphique (xdm, gdm, kdm ou wdm) :
auth required pam_nologin.so
auth required pam_env.so
auth required pam_unix_auth.so
account required pam_unix_acct.so
password required pam_unix_passwd.so shadow
session required pam_unix_session.so
session required pam_limits.so
+++ auth optional pam_mount.so use_first_pass
+++ session optional pam_mount.so use_first_pass
Apres avoir configure votre service, il faut configurer le comportement de la libpam-mount elle meme. Pour cela il faut editer le fichier de configuration /etc/security/pam_mount.conf.
debug 0 mkmountpoint 1 lsof /usr/sbin/lsof fsck /sbin/fsck losetup /sbin/losetup options_allow * options_require nosuid,nodev smbmount /usr/bin/smbmount smbumount /usr/bin/smbumount ncpmount /usr/bin/ncpmount ncpumount /usr/bin/ncpumount umount /bin/umount lclmount /bin/mount --pass-fd 0 # Volumes that will be mounted when user triggers pam_mount module # # Format: # volume <user> [smb|ncp|nfs|local] <server> <volume> <mount point> \ # <mount options> <cipher> <key> volume * local - /home/.&.img /home/& \ sync,loop,encryption=aes,keybits=256 aes-256-ecb /home/.&.key
Les deux dernieres lignes ne sont qu'une seul et unique ligne. Le caractere '&' est automatiquement remplacer par le login de l'utilisateur qui se connectera. L'image crypter du repertoire personnel de l'utilisateur se trouve dans le repertoire /home sous la forme .nom_d'utilisateur.img. La cle de cryptage se trouve dans le meme repertoire, dans le fichier .nom_d'utilisateur.key. Bien sur il est possible de placer ces fichier dans un autre repertoire. Les images de repertoires personnel de l'utilisateur sont bien sur proteger par une passphrase qui est mot de pass de l'utilisateur.
Par default la librairie PAM ne ferme pas la session de chaque utilisateur et n'appel jamais la fonction pam_close_session. Il faut modifier ce comportement pour demonter automatiquement le repertoire de l'utilisateur lorsque celui-ci se deconnect. Pour cela il faut regler la valeur de la variable CLOSE_SESSIONS a yes dans le fichier /etc/login.defs.
# # Enable pam_close_session() calling. When using normal (pam_unix.so) # session handling modules, this is not needed. However with modules # (such as kerberos or other persistent session models), login and su # need to fork and wait for the shell to exit so that sessions can be # cleaned up. # CLOSE_SESSIONS yes