Monter automatiquement des partitions en fonction du login de connexion avec libpam-mount
But de ce document
Ce document me sert de mémo pour monter automatiquement des partages samba d’autres postes du réseau en fonction du login de connexion.
L’utilisateur connecté sur le poste Linux, peut donc parcourir les fichiers des autres postes en fonction de ses propres droits.
Ce mémo a été écrit et testé pour une Debian Testing, mais il doit être possible de l’adapter facilement à d’autres distributions.
Pré-requis
Avoir installé une Debian de Base :
Problèmes posés avec le montage classique par « fstab »
Un montage classique est paramétré dans le fichier « /etc/fstab ».
Tous les montages indiqués dans ce fichier sont montés (automatiquement ou pas) au démarrage du système.
Les montages sont communs à tous les utilisateurs et les droits sont ceux indiqués dans les options de ce montage.
Il n’est pas possible d’avoir des montages différents ou des droits différents sur les montages en fonction de l’utilisateur connecté.
Installation libpam-mount
Paquet à installer :
apt-get install libpam-mount
Autres paquets à installer pour monter des partitions samba :
apt-get install smbfs smbclient
Configuration du fichier « /etc/security/pam_mount.conf »
Remarque : Le caractère « \ » indiqué dans les lignes de configuration de ce chapitre correspond à un saut de ligne. Il ne faut pas le mettre et supprimer le saut de ligne.
Le fichier « pam_mount.conf » est le fichier principal de configuration de « libpam-mount »
Pour monter un partage automatiquement, il faut ajouter à la fin du fichier, une ligne du type :
volume [smb|ncp|nfs|local]
\
Remarque : Si « * » est utilisé pour le paramètre
Voici un exemple pour monter le dossier partagé « Utilisateurs » du serveur « pglinux » sur le point de montage « /Reseau/pglinux » pour tous les utilisateurs (Le signe correspond au répertoire home de l’utilisateur) :
volume * smb pglinux Utilisateurs ~/Reseau/pglinux - - -
Voici le même exemple avec des options de montage :
volume * smb pglinux Utilisateurs ~/Reseau/pglinux uid=&,gid=&,fmask=0700,dmask=0700, \
workgroup=VOTREDOMAINE,iocharset=iso8859-1,codepage=cp850 - -Voici le même exemple valable uniquement pour l’utilisateur tony (Dans ce cas, le signe « & » n’est plus utilisable) :
volume tony smb pglinux Utilisateurs ~/Reseau/pglinux uid=tony,gid=tony, \
fmask=0700,dmask=0700,workgroup=VOTREDOMAINE,iocharset=iso8859-1,codepage=cp850 - -Débugage : La première ligne de ce fichier permet également d’activer le débugage pour comprendre ce qui ne fonctionne pas :
debug 1
Si vous ne souhaitez pas que les points de montage soient créés automatiquement s’ils n’existent pas, il faut modifier la ligne suivante :
mkmountpoint 0
Configuration de pam
ATTENTION : Avant de modifier la configuration de pam, il est vivement conseillé d’ouvrir une console sous root (ALT+F1) et de ne pas la fermer tant que tout ne fonctionne pas correctement. Une mauvaise configuration de pam peut empêcher toute connexion même sous root.
Remarque : Il existe plusieurs façons de configurer pam, car cela dépend de ce que l’on veut faire. Il est possible de monter les partitions depuis toutes sortes de connexions (via kdm, login, su, ssh) ou seulement depuis une seule sorte de connexion (ex : kdm). De plus la configuration de pam dépend également de la configuration actuelle du système. Dans ce mémo, je pars du principe que pam n’a jamais été modifié sur la Debian Testing.
Montage des partitions avec tous les types de connexion
Remarque : Les fichiers de configuration de pam sont situés dans « /etc/pam.d/ ». dans ce dossier on trouve un fichier par type de connexion (kdm, su, ssh,..) et des fichiers communs à tous (common-account, common-auth,...)
Pour que le paramétrage soit valable pour tous les modes de connexion, il faut donc modifier les fichiers communs.
Il faut ajouter la ligne suivante dans le fichier « /etc/pam.d/common-session » :
session required pam_mount.so
Il faut ajouter la ligne suivante au début du fichier « /etc/pam.d/common-auth » :
auth required pam_mount.so
Et ajouter « use_first_pass » à la ligne suivante pour que le mot de passe utilisé par la ligne précédente soit réutilisé sans devoir le saisir plusieurs fois :
auth required pam_unix.so nullok_secure use_first_pass
Montage des partitions uniquement avec une connexion de type « su »
Par défaut la configuration du fichier « /etc/pam.d/su »ressemble à ceci :
auth sufficient pam_rootok.so
@include common-auth
@include common-account
@include common-sessionLes lignes commençant par un « @ » permettent d’inclure les fichiers indiqués.
En intégrant les fichiers importés et en ajoutant les lignes nécessaires à la configuration de pam, le fichier « /etc/pam.d/su » pourrait ressembler à ça :
auth sufficient pam_rootok.so
auth required pam_mount.so
auth required pam_unix.so nullok_secure use_first_pass
account required pam_unix.so
session required pam_unix.so
session required pam_mount.soMontage des partitions uniquement avec une connexion de type « kdm »
Si kde est installé sur le poste et si vous souhaitez effectuer le montage des partitions uniquement à la connexion via kdm, vous pouvez modifier le fichier « « /etc/pam.d/kdm » comme ceci :
auth required pam_mount.so
auth required pam_unix.so nullok_secure use_first_pass
account required pam_unix.so
password required pam_unix.so nullok obscure min=4 max=8 md5
session required pam_unix.so
session required pam_mount.so
auth required pam_nologin.so
auth required pam_env.so
session required pam_limits.soTest de la configuration
Si vous avez modifié le fichier « su », il faut faire un « su » sur l’utilisateur à tester et vérifier que tout est bien monté. Si le débugage a été activé (debug 1), de nombreuses lignes d’informations s’afficheront à l’écran juste après la saisie du mot de passe.
Si vous avez modifié le fichier « kdm », il faut se reconnecter via kdm.
Historique des modifications
| Version | Date | Commentaire |
|---|---|---|
| 0.1 | 31/05/05 | Création par Tony GALMICHE |
| 0.2 | 26/09/05 | Ajout différentes configurations de pam |

Commentaires
> Monter automatiquement des partitions en fonction du login de
Pour permettre aux volumes montés de se démonter à l’ouverture de session il faut mettre le paramètre CLOSE_SESSION a yes dans le fichier /etc/login.defs
(valable pour debian en test sur ubuntu)