Modules PAM

Quatre types de module PAM permettent de contrôler l'accès aux services. Ces modules dépendent de différents aspects du processus d'authorisation :

NoteRemarque
 

Un module peut utiliser plusieurs des modules ci-dessus. Par exemple, pam_unix.so contient des éléments qui utilisent les quatre modules.

Dans un fichier de configuration PAM, ce type de module est le premier a être défini. Par exemple, une ligne typique d'une configuration ressemble à ceci :

auth      required  /lib/security/pam_unix.so

Ceci fait que PAM cherche l'élément auth dans le module pam_unix.so module.

Modules d'empilage

Des modules peuvent être empilés afin d'être utilisés ensemble pour un but particulier. Par conséquent, l'ordre des modules est três important dans le processus d'authentification.

L'empilage requiert différentes conditions pour que l'administrateur puisse procéder à l'authentification d'un utilisateur. Par exemple, rlogin utilise normalement cinq modules auth empilés, comme le montre son fichier de configuration PAM :

auth       required     /lib/security/pam_nologin.so
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_env.so
auth       sufficient   /lib/security/pam_rhosts_auth.so
auth       required     /lib/security/pam_stack.so service=system-auth

Avant d'accorder rlogin à un utilisateur, PAM s'assure que le fichier/etc/nologin n'existe pas, que l'utilisateur n'essaie pas de se connecter à distance en tant qu'utilisateur root au moyen d'une connexion réseau chiffrée et que toute variable d'environnement peut être chargée. Ensuite, une authentification rhosts réussie doit être effectuée avant que la connexion ne soit accordée. Si l'authentification rhosts échoue, une authentification standard au moyen d'un mot de passe est lancée.

Création de modules

Il est possible d'ajouter des modules d'authentification enfichables à tout moment et les applications prenant en charge PAM peuvent ensuite les utiliser. Par exemple, si vous élaborez une méthode de création de mot de passe unique et écrivez un module d'authentification enfichable pour la prendre en charge, tous les programmes reconnaissant les PAM pourront utiliser ce nouveau module et cette méthode de mot de passe à l'instant sans qu'ils n'aient besoin d'être recompilés ou modifiés. Comme vous pouvez l'imaginer, ceci est très utile car vous pouvez combiner (et tester) rapidement des méthodes d'authentification pour différents programmes sans devoir les recompiler.

La documentation sur l'écriture de modules est comprise avec le système dans /usr/share/doc/pam-numéro-version/.