Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
02 juillet 2014

htmlpdflatexmanmd




pam_krb5

pam_krb5

Module d'authentification Kerberos

OPTIONS

ccache=‹pattern› Utilise le pattern pour créer le cache d'accréditifs. doit être sous la forme ‹type›:‹residual›. %u est remplacé avec l'id de l'utilisateur. %p est remplacé avec le PID courant. Si pattern se termine avec la chaîne XXXXXX, une chaîne aléatoire est utilisée. (auth et session)
ccache_dir=‹directory› Stocke les caches utilisateur dans le répertoire spécifié au lieu de /tmp (auth et session)
debug mode debug
forwardable Obtient des tickets forwardable (auth)
ignore_k5login Ne regarde jamais dans le fichier .k5login dans le home de l'utilisateur (auth et account)
ignore_root Ne fait rien si l'utilisateur est root.
minimum_uid=‹uid› ID minimum pour authoriser l'authentification
no_ccache ne créé pas de cache de ticket après l'authentification (auth). non définissable dans krb5.conf
realm=‹realm› Obtient des accréditifs dans le domaine spécifié au lieu de celui par défaut. non définissable dans krb5.conf
renew_lifetime=‹lifetime› Obtient des tickets renouvelable (auth)
retain_after_close Ne détruit pas le cache de ticket temporaire lorsque pam_end() ou pam_close_session() sont appelés. (auth et session)
search_k5login Utilise .k5login de l'utilisateur pour l'authentification.
try_first_pass Utilise le mot de passe d'un module précédent au lieu d'en demander un. En cas d'échec, demande un mot de passe.
use_authtok Utilise le mot de passe d'un module précédent au lieu d'en demander un. Ne demande jamais de mot de passe.
use_first_pass Utilise le mot de passe d'un module précédent au lieu d'en demander un. En cas d'échec, si aucun module n'a de mot de passe, en demande un, si un mot de passe est trouvé et ne fonctionne pas, échoue sans en demander un.

Variables d'environnement

KRB5CCNAME Définis par pam_setcred(). Fichier du cache d'accréditifs par défaut, sous la forme type:residual
PAM_KRB5CCNAME Définis par pam_authenticate() pour pointer vers le cache de ticket temporaire utilisé pour l'authentification.

Fichiers

/tmp/krb5cc_UID_RANDOM Nom du cache d'accréditifs par défaut.
/tmp/krb5cc_pam_RANDOM no du cache d'accréditifs utilisé pour le cache temporaire crée par pam_authenticate(). il est supprimé à la fin de la session pam ou quand pam_setcred() est appelé.
~/.k5login Fichier contenant les principaux Kerberos autorisés à accéder à ce compte.

Exemples

Exemple de configuration PAM:
auth sufficient pam_krb5.so ignore_root
session optional pam_krb5.so ignore_root
account required pam_krb5.so ignore_root
password optional pam_krb5.so ignore_root

Exemple de configuration krb5.conf
[appdefaults]
forwardable = true
    pam = {
        minimum_uid = 100
        EXAMPLE.COM = {
            ignore_k5login = true
        }
    }

^
16 novembre 2010

htmlpdflatexmanmd




pam_radius_auth

pam_radius_auth

Authentification auprès d'un serveur Radius

OPTIONS

debug syslog des informations détaillées
use_first_pass Récupère le mot de passe depuis un précédant module. S'il ne peut récupérer de mot de passe, échoue.
try_first_pass Récupère le mot de passe depuis un précédant module. S'il ne peut récupérer de mot de passe, le demande à l'utilisateur
skip_passwd Ne demande pas de mot de passe, même si aucun n'a été trouvé. envoie le précédent s'il en existe un ou envoie un mot de passe NULL.
conf=foo Fichier de configuration à utiliser. défaut : /etc/raddb/server
client_id=bar Envoie un Attribut RADIUS NAS-Identifier avec la chaîne spécifiée. si client_id n'est pas spécifié, le type PAM_SERVICE est utilisé ('login', 'su', 'passwd', etc.) Peut être désactivé avec client_id=
retry=# Définit le nombre de tentatives.
use_authok Force l'utilisation d'un mot de passe précédemment entré. Nécessaire pour la vérification de la complexité des mots de passe, par exemple, en utilisant cracklib.
ruser si PAM_USER est root, utilise la valeur de PAM_RUSER au lieu de PAM_USER pour déterminer le nom d'utilisateur à authentifier via RADIUS. Celà permet à su d'agir comme sudo
localifdown retourne PAM_IGNORE au lieu de PAM_AUTHINFO_UNAVAIL si RADIUS auth échoue à cause d'une indisponibilité réseau.
accounting_bug Utilisé, le vecteur de réponse de compte n'est pas validé. (pour la compatibilité de très vieux serveur RADIUS)

Exemples

auth sufficient /lib/security/pam_radius_auth.so
account sufficient /lib/security.pam_radius_auth.so
^
14 novembre 2010

htmlpdflatexmanmd




pam_mysql

pam_mysql

Authentification auprès d'un serveur MySQL

OPTIONS

verbose Si définis à 1 logs des informations détaillées
debug Un alias du mode verbose
user Le nom de l'utilisateur à utiliser pour la connexion au serveur MySQL
passwd Le mot de passe de l'utilisateur spécifié par user
host Le nom d'hôte ou le chemin absolu du socket unix où le serveur MySQL écoute
db Le nom de la base de données contenant les noms de logins unique et leur mot de passe. Peut être une combinaison de tables avec la syntaxe JOIN. Par exemple: [table=Host LEFT JOIN HostUser ON HostUser.host_id=Host.id LEFT JOIN User ON HostUser.user_id=User.id]
update_table le nom de la table utilisée pour l'altération des mot de passe.
usercolumn Le nom de la colonne contenant les noms unix
passwdcolumn le nom de la colonne contenant les mots de passe cryptés
statcolumn Le nom de la colonne ou une expression SQL qui indique le statut de l'utilisateur. Le statut est exprimé par la combinaison de 2 bits:

        bit 0 à 1 le compte a expiré
        bit 1 à 1 le mot de passe doit être changé

crypt La méthode de cryptage du mot de passe:

        0 aucun cryptage
        1 ou Y crypt(3)
        2 ou mysql utilise MYSQL PASSWORD()
        3 ou md5 hash md5
        4 ou sha1 hash sha1

md5 Utilise md5 par défaut pour le hash crypt(3). N'a de sens que si crypt vaut Y
use_323_passwd Utilise MySQL version 3 pour la fonction de cryptage si crypt vaus mysql
where critère additionnel pour la requête
sqllog active ou non le log SQL
logtable Le nom de la table dans lequel écrire les logs
logmsgcolumn le nom de la colonne dans la table de log où est écrire le pid du processus utilisant pam_mysql
loghostcolumn Le nom de la colonne où l'IP de la machine est stocké
logrhostcolumn Le nom de la colonne où stocker l'hôte distant qui initie la session
logtimecolumn Le nom de la colonne dans laquelle écrire le timestamp
config_file Chemin vers le fichier de configuration dans le style NSS_Mysql qui énumère les options par ligne. Les noms d'options acceptées sont:

        - users.host (host)
        - users.database (db)
        - users.db_user (user)
        - users.db_passwd (passwd)
        - users.where_clause (host)
        - users.table (table)
        - users.update_table (update_table)
        - users.user_column (usercolumn)
        - users.password_column (passwdcolumn)
        - users.status_column (statcolumn)
        - users.password_crypt (crypt)
        - users.use_323_password (use_323_passwd)
        - users.use_md5 (md5)
        - users.where_clause (where)
        - users.disconnect_every_operation (disconnect_every_op) *1
        - verbose (verbose)
        - log.enabled (sqllog)
        - log.table (logtable)
        - log.message_column (logmsgcolumn)
        - log.pid_column (logpidcolumn)
        - log.user_column (logusercolumn)
        - log.host_column (loghostcolumn)
        - log.rhost_column (logrhostcolumn) setfor2
        - log.time_column (logtimecolumn)

use_first_pass à true pam_mysql ne demande pas de mot de passe et utilise celui fournit par un précédent module d'authentification. S'il n'est pas donné, l'authentification échoue
try_first_pass Tente avec le mot de passe fournit pas un précédent module d'authentification. S'il échoue, demande le mot de passe à l'utilisateur
disconnect_every_op Par défaut, pam_mysql conserve la connexion à la base mysql jusqu'à ce que la session soit terminée. Cette option permet de déconnecter à chaque fois que l'opération PAM s'est terminée.

Exemples

auth optional pam_mysql.so user=root passwd=password
account required pam_mysql.so user=root passwd=password
^
13 novembre 2010

htmlpdflatexmanmd




pam_ldap

pam_ldap

Authentification via un serveur ldap

   pam_ldap fournit l'authentification, l'autorisation et le changement de mot de passe depuis un serveur ldap. Il inclus le support sécurisé, authentification sasl, les politiques de mot de passe renforcés pas le serveur, les autorisations de login basés sur les hôtes et groupes.

  Quand il autorise ou authentifie un utilisateur, pam_ldap map le nom de login de l'utilisateur à un DN en cherchant dans l'annuaire. Cela doit être possible en utilisant l'identité du système local, spécifié dans ldap.conf (cette étape initial ne supporte que l'authentification simple pour le moment).

  Pour authentifier ou autoriser un utilisateur, pam_ldap tente de se lier au serveur en utilisant le DN de l'utilisateur. pam_ldap est généralement configuré dans ldap.conf, mais certaines options peuvent être configurées dans le fichier de configuration PAM, pour permettre une granularité par service.

   Les options du fichier de configuration consistent d'un mot clé suivi par un espace et des arguments. Il est possible de configurer certains aspects de pam_ldap par service dans les fichiers de configuration de pam

OPTIONS

config=‹path› Spécifie le fichier de configuration à utiliser au lieu de ldap.conf. Il n'est pas possible d'utiliser plusieurs instances de configuration.
use_first_pass Spécifie que pam_ldap devrait toujours utiliser le premier mot de passe fournis dans la pile d'authentification
try_first_pass Spécifie que pam_ldap devrait d'abord essayer le premier mot de passe fournis dans la pile d'authentification, puis de demander à l"utilisateur le mot de passe LDAP si l'authentification échoue.
ignore_unknown_user Spécifie que pam_ldap devrait retourner PAM_IGNORE pour les utilisateurs non présents dans l'annuaire.
ignore_authinfo_unavail Spécifie que pam_ldap devrait retourner PAM_IGNORE s'il ne peut contacter le serveur LDAP
no_warn Spécifie que les messages d'alerte ne devraient pas être propagés dans l'application PAM
use_authok Identique à use_first_pass pour le changement de mot de passe uniquement
^
11 novembre 2010

htmlpdflatexmanmd




pam_xauth

pam_xauth

Forward xauth keys between users

   pam_xauth est conçu pour forwarder les clés xauth (parfois appelées cookies) entre les utilisateurs. Sans pam_xauth, quand xauth est activé et qu'un utilisateur utilise su pour obtenir les privilèges d'un autre utilisateur, cet utilisateur n'est plus capable d'accéder à l'affichage X de l'utilisateur parce que le nouvel utilisateur n'a pas la clé necessaire pour accéder à l'affichage. pam_xauth résoud le problème en forwardant la clé. Celà veut dire par exemple, que quand vous lancez su depuis une session xterm, vous être capable de lancer des programmes X sans explicitement utiliser la commande xauth ou les fichier ./Xauthority.

  pam_xauth ne forward les clés seulement si xauth peut lister une clé connectée à la varialbe d'environnement DISPLAY. Le contrôle d'accès est fournis par /.xauth/export dans le répertoire home de l'utilisateur qui invoke et /.xauth/import dans le home de l'utilisateur cible.

OPTIONS

debug Affiche des informations de debuggage
xauthpath=/path/to/xauth Spécifie le chemin du programme xauth (par défaut /usr/X11R6/bin/xauth, /usr/bin/xauth ou /usr/bin/X11/xauth)
systemuser=UID Spécifie le plus haut UID qui sera assumé devenir l'utilisateur système. pam_xauth varefuser de forwarder aux utilisateurs avec un UID inférieur ou égal à ce nombre, excépté pour root et le "targetuser" si spécifié.
targetuser=UID Spécifie un simple UID cible quiest exempt de la vérification systemuser

   Ne fournis que le type de module session

Valeurs retournées

PAM_BUF_ERR Erreur de tampon mémoire
PAM_PERM_DENIED permission refusée par le fichier import/export
PAM_SESSION_ERR Ne peut pas déterminer le nom d'utilisateur, l'UID ou accéder au hom de l'utilisateur
PAM_SUCCESS succès
PAM_USER_UNKNOWN utilisateur inconnu

Exemples

Exemple pour /etc/pam.d/su pour forwarder les clés xauth entre les utilisateurs
session optional pam_xauth.so
^
11 novembre 2010

htmlpdflatexmanmd




pam_wheel

pam_wheel

Permet l'accès root aux membres du groupe wheel

   pam_wheel permet un accès root au système si l'utilisateur est un membre du groupe wheel. Si aucun groupe avec ce nom n'existe, le module utilise le groupe avec l'ID de groupe 0. Fournit les types de module auth et account.

OPTIONS

debug Affiche des informations de debuggage
deny Renverse le sens de l'opération auth: si l'utilisateur essaye d'avoir l'accès UID 0 et est membre du groupe wheel, l'accès est refusé. si l'utilisateur n'est pas dans le groupe, retourne PAM_IGNORE.
group=name au lieu de vérifier les groupes 0 ou wheel, utilise le nom du groupe pour effectuer l'authentification
root_only ne vérifie que l'appartenance au groupe wheel
trust retourne PAM_SUCCESS au lieu de PAM_IGNORE si l'utilisateur est un membre du groupe wheel
use_uid La vérification de l'appartenance au groupe wheel est faite avec l'uid courant au lieu de l'original. (utile en passant avec su d'un compte à un autre)

Valeurs retournées

PAM_AUTH_ERR Erreur d'authentification
PAM_BUF_ERR Erreur de tampon mémoire
PAM_IGNORE La valeur retournée devrait être ignorée par PAM
PAM_PERM_DENY Permission refusée
PAM_SERVICE_ERR Ne peut pas déterminer le nom de l'utilisateur
PAM_SUCCESS succès
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

Le compte root a accès par défaut (rootok), seul les membres du groupe wheel peuvent devenir root, mais l'authentification UNIX non-root s'applique
su auth sufficient pam_rootok.so
su auth required pam_wheel.so
su auth required pam_unix.so
^
11 novembre 2010

htmlpdflatexmanmd




pam_warn

pam_warn

Log tous les éléments PAM

   pam_warn est un module qui log le service, terminal, user, remote user et remote host dans syslog(3). Ce module retourne toujours PAM_IGNORE. Ce module fournis tous les types de module.

Exemples

Si on a pas d'entrée de config pour un service, l'entrée other est utilisé. Par sécurité on refuse et on log tout
other auth required pam_warn.so
other auth required pam_deny.so
other account required pam_warn.so
other account required pam_deny.so
other password required pam_warn.so
other password required pam_deny.so
other session required pam_warn.so
other session required pam_deny.so
^
11 novembre 2010

htmlpdflatexmanmd




pam_userdb

pam_userdb

Authentification auprès d'un base de données

   pam_userdb est utilisé pour vérifier un user/password avec des valeurs stockées dans une DB Berkeley. Ne fournis que les types de module auth et account.

OPTIONS

crypt=crypt Indique si le mot de passe est stocké en crypté et en clair dans la DB. S'il est crypté, le mot de passe devrais être stocké dans le DB sous la forme crypt(3).
db=/path/database Spécifie le chemin de la db à utiliser
debug Affiche des informations de debuggage
dump dump toutes les entrées dans la db dans le log.
icase la vérification du mot de passe est sensible à la casse. ne fonctionne que pour les mots de passe en clair
try_first_pass Utilise le token précédemment obtenu par un autre module.
use_first_pass Utilise le token d'authentification précedemment obtenu parun autre module. Si ce token ne peut pas être obtenu, le module échoue.
unknown_ok Ne retourne pas d'erreur si l'utilisateur n'est pas dans la db.
key_only le username et le password sont concatenés ensemble dans le hash db sous la forme 'username-password" avec une valeur aléatoire.

Valeurs retournées

PAM_AUTH_ERR Authentification échouée
PAM_AUTHOK_RECOVERY_ERR Les informations d'authentification ne peut être récupérées
PAM_BUF_ERR Erreur de tampon mémoire
PAM_CONV_ERR Erreur de conversation
PAM_SERVICE_ERR Erreur dans le module
PAM_SUCCESS succès
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

auth sufficient pam_userdb.so icase db=/etc/dbtest.db
^
09 novembre 2010

htmlpdflatexmanmd




pam_unix

pam_unix

Authentification pas mot de passe traditionnel

   pam_unix.so est le module d'authentification par défaut. Il utilise les appels standard depuis les librairies système basé sur les éléments shadow suivant: expire, last_change, max_change, min_change, warn_change. Pour le dernier, il peut empêcher l'utilisateur de changer son mot de passe, ou attendre qu'il ai changé son mot de passe. Par défaut ce module n'autorise pas l'accès si le mot de passe n'est pas définit.

  unix_chkpwd est fournit pour vérifier le mot de passe de l'utilisateur quand il est stocké dans une base protégée en lecture.

  Le composant password de ce module effectue la mise à jour du mot de passe de l'utilisateur.

  Le composant session de ce module log quand un utilisateur se log ou quitte le système.

OPTIONS

debug syslog les informations de debuggage
audit un peu plus extrême que debug
nullok permet l'accès à une utilisateur sans mot de passe
try_first_pass Avant de demande le mot de passe à l'utilisateur, le module essaye le mot de passe précédemment stacké.
use_first_pass Force le module à utiliser un mot de passe précédemment stacké et ne prompt jamais l'utilisateur.
nodelay Peut être utilisé pour décourager le composant d'authentification de demander un délai quand l"authentification échoue.
use_authok Le changement de mot de passe force le module à remplacer le nouveau mot de passe par celui fournit par un mot de passe précédemment stacké. C'est utilisé par exemple avec le module pam_cracklib
not_set_pass Cet argument est utilisé pour informer le module de ne pas prêter attention ou de rendre les ancien ou les nouveaux mot de passe depuis/vers d'autres module de mot de passe.
nis NIS RPC est utilisé pour définir les nouveau mot de passe
remember=n les dernier n mots de passe pour chaque utilisateurs sont sauvés dans /etc/security/passwd dans le but de forcer l'historique de changement de mot de passe et d'empêcher l'utilisateur de réutiliser les même mots de passe trop fréquemment.
shadow tente de maintenir un shadow based system
md5 crypte en md5 les nouveau mots de passe
bigcrypt crypte avec DEC C2
sha256 crypte avec SHA256
sha512 crypte avec SHA512
blowfish crypte avec blowfish
rounds=n Définit le nombre de passe des algorithmes SHA256, SHA512 et blowfish broken_shadow
ignore les erreurs en lisant les informations shadow de l'utilisateur dans le module de gestion de compte. minlen=n
Définis la longueur minimum du mot de passe. pour DES max=8

   Les arguments invalides sont syslog(3). Retourne tous les types de module.

Exemples

exemple d'utilisation dans /etc/pam.d/login: authentifier l'utilisateur
auth required pam_unix.so
s'assuer que le compte etle mot de passe sont actifs
account required pam_unix.so
change le mot de passe, mais vérifie d'abord la force avec pam_cracklib
password required pam_cracklib.so retry=3 minlen=6 difok=3
password required pam_unix.so use_authok nullok md5
session required pam_unix.so
^
09 novembre 2010

htmlpdflatexmanmd




pam_umask

pam_umask

Définis de masque de création de fichier

   pam_umask définit le masque de création de fichier de l'environnement en cours. Ne fournis que le type de module session. Le umask affecte les permissions par défaut assignées aux fichiers nouvellement crées. pam_umask tente d'obtenir la valeur umask depuis les emplacements suivant, dans l'ordre:

        - umask = argument
        - umask = entrée des champs utilisateur GECOS
        - pri= Entrée des champs utilisateurs GECOS
        - ulimit= entrée des champs utilisateur GECOS
        - UMASK= entrée depuis /etc/default/login
        - Entrée UMASK depuis /etc/login.defs

OPTIONS

debug Affiche les informations de debuggage
silent N'affiche pas de messages d'information
usergroups Si l'utilisateur n'est pas root et que le nom d'utilisateur est le même que le nom du groupe principal, les bits umask du groupe sont définit comme ceux du propriétaire (exemple : 022 -› 002, 077 -› 007)
umask=mask Définit le mask pour les nouveau fichiers (umask) au masque & 0777. La valeur est interprétée en octal

Valeurs retournées

PAM_SUCCESS Le nouveau umask a été défini avec succès
PAM_SERVICE_ERR Aucun nom d'utilisateur n'a été donné
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

Ajouter cette ligne dans /etc/pam.d/login pour définir un umask spécifique au login
session optional pam_umask.so umask=0022
^
08 octobre 2010

htmlpdflatexmanmd




pam_timestamp

pam_timestamp

Authentifie avec le cache d'authentification

   pam_timestamp met en cache les tentatives réussis de login, et permet d'utiliser une tentative réussit récente comme base de l'authentification. C'est similaire au mécanisme sudo. il utilise les fichiers dans /var/run/sudo/. Fournis les types de module auth et session.

OPTIONS

timestamp_timeout=number Spécifie le nombre de secondes que le timestamp reste valide après la dernière modification (défaut 300secondes)
verbose Tente d'informer l'utilisateur quand l'accès est donné.
debug syslog les informations de debuggage.

Valeurs retournées

PAM_AUTH_ERR Le module ne peut pas récupérer le nom d'utilisateur ou aucun fichier timestamp n'a été trouvé
PAM_SUCCESS tout est ok
PAM_SESSION_ERR Le fichier timestamp ne peut pas être créé ou mis à jour

Exemples

auth sufficient pam_timestamp.so verbose
auth required pam_unix.so
session required pam_unix.so
session optional pam_timestamp.so
^
07 octobre 2010

htmlpdflatexmanmd




pam_time

pam_time

Contrôle des horaires d'accès

   pam_time n'authentifie pas l'utilisateur, mais restreint l'accès à un système et/ou des applications à des horaires particulières. Pour que ce module fonctionne correctement, le fichier /etc/security/time.conf doit être présent et correctement formaté. Fournit les types de modules account. La syntaxe des lignes du fichier est sous la forme:

  services;ttys;users;times

services est une liste logique de noms de services PAM
ttys Liste logique de nom de terminaux
users Liste d'utilisateurs ou netgroupes
times Utilisé pour indiquer à quels moment la règle s'applique. Le format est une liste de jour/plage-de-temps. Les jours sont spécifié par une séquence de 2 caractères, MoTuSa par exemple signifie Monday Tuesday et Saturday. Noter que les jours qui sont répétés s'annule: MoMo = aucun jour, MoWk = toute la semaine sauf lundi. peut être Mo Tu We Th Fr Sa Su Wk Wd Al. On peut préfixer les jours avec ' !' pour spécifier "tout sauf". La plage de temps est sous la forme de 2 fois "HHMM".

OPTIONS

debug syslog les informations de debuggage
noaudit ne report pas les logins refusés

Valeurs retournées

PAM_SUCCESS l'accès est autorisée
PAM_ABORT Problèmes de données
PAM_BUF_ERR erreur tampon mémoire
PAM_PERM_DENIED L'accès est refusé
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

Tous les utilisateurs sauf root n'ont pas accès aux login console en permanence
login;tty* & !ttyp*;!root;!Al0000-2400
Les jeux configurés pour utiliser PAM ne sont accessibles qu'en dehors des heures de travail, mais ne s'applique pas à l'utilisateur waster
games;*;!waster;Wd0000-2400 | Wk1800-0800
^
07 octobre 2010

htmlpdflatexmanmd




pam_tally2

pam_tally2

Module compteur de login

   Ce module maintient un compteur de tentative d'accès, peut ré-initialiser ce compteur en cas de succès et peut refuser l'accès si trop de tentatives échouent.

  pam_tally2 est composé de 2 parties: pam_tally2.so et pam_tally2. Ce dernier est une application optionnelle qui peut être utilisé pour interroger et manipuler le fichier compteur. Il peut afficher le compteur de l'utilisateur, définir les compteurs individuels ou reset tous les compteurs Définir des compteurs élevés peut être utile pour bloquer les utilisateurs sans changer leur mot de passe. Par exemple, il peut être utile effacer tous les compteurs à minuit depuis un cron.

  Normalement, les tentatives échouées au compte root ne bloque pas ce compte, pour prévenir les DOS. Fournit les types de module auth et account.

Options globales

   Peuvent être utilisées par les types de module auth et account.

onerr=fail Si quelque-chose se produit (comme l'impossibilité d'ouvrir le fichier), retourne PAM_SUCCESS si onerr=succeed.
file=/path/to/counter Fichier où sont conservés les compteurs
audit log les noms d'utilisateurs qui ne sont pas trouvés
silent mode silencieux
no_log_info ne syslog rien

Options Auth

   La phase d'authentification incrémente d'abord le compteur de tentative de login et vérifie si l'utilisateur devrait avoir l'accès refusé. Si l'utilisateur est authentifié et le processus de login continus à l'appel pam_setcred, le compteur est ré-initialisé.

deny=n Refuse l'accès si le compteur excède N tentatives.
lock_time=n Refuse toujours après n secondes après qu'une tentative échoue
unlock_time=n Autorise l'accès après n secondes après une tentative échouée. Si cette option est utilisée l'utilisateur sera bloqué pendant la durée de temps spécifiée après avoir dépassé le nombre de tentative maximum. Sinon le compte est bloqué jusqu'à ce qu'il soit débloqué manuellement
magic_root Si le module est invoqué par une utilisateur d'uid=0 le compteur n'est pas incrémenté.
no_lock_time N'utilise pas le champs .fail_locktime dans /var/log/faillog pour cet utilisateur
even_deny_root Le compte root peut devenir indisponible
root_unlock_time=n Cette option implique even_root. Autorise l'accès après n secondes au compte root après une tentative échouée.
serialize Sérialise l'accès au fichier compteur utilisant les locks. Cette options peut être utilisée seulement pour les services non-multi-threads parce qu'il dépend du fcntl locking dans le fichier compteur. C'est également une bonne idée d'utiliser cette option seulement dans des configuration où le temps entre la phase auth et la phase account ou setcred n'est pas dépendant du client. Sinon le client sera capable de prévenir les authentification simultanées par le même utilisateur en prolongeant artificiellement le temps que le fichier lock.

Options Account

   La phase account ré-initialise le compteur de tentatives si l'utilisateur n'est pas root. Cette phase peut être utilisée optionnellement pour les services qui n'appellent pas pam_setcred correctement ou si le reset devrait être fait sans regarder les échecs de la phase account des autres modules.

magic_root Si le module est invoqué par un utilisateur avec uid=0 le compteur n'est pas changé. Le sysadmin devrait l'utiliser pour les services utilisateurs, comme su, sinon cet argument devrait être omis.

Valeurs retournées

PAM_AUTH_ERR option invalide, le module ne peut pas retrouver le nom d'utilisateur, compteur invalide, fichier non trouvé ou trop de logins échoués
PAM_SUCCESS Tous est ok
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

Exemple de /etc/pam.d/login pour bloquer le compte au bout de 4 tentatives. Le root ne sera pas bloqué. Le compte sera débloqué après 20 minutes. Le module n'a pas à être appelé dans la phase account parce que login appelle pam_setcred correctement
auth required pam_securetty.so
auth required pam_tally2.so deny=4 even_deny_root unlock_time=1200
auth required pam_env.so
auth required pam_unix.so
auth required pam_nologin.so
account required pam_unix.so
password required pam_unix.so
session required pam_limits.so
session required pam_unix.so
session required pam_lastlog.so nowtmp
session optional pam_mail.so standard
^
06 octobre 2010

htmlpdflatexmanmd




pam_succeed_if

pam_succeed_if

Test les caractéristiques des comptes

   pam_succeed_if est conçu pour réussir ou non l'authentification en se basant sur les caractéristiques du compte de l'utilisateur. Une utilisation est de sélectionner si d'autres modules sont chargés en fonction de ce test.

OPTIONS

debug syslog les informations de debuggage
use_uid Évalue les conditions en utilisant le compte utilisateur de l'application au lieu de l'utilisateur qui s'authentifie
quiet mode silencieux
quiet_fail ne log pas les echecs
quiet_success ne log pas les réussites
audit syslog les utilisateurs inconnus

Conditions

   Les conditions sont composés de 3 mots un champs, un test et une valeur de test.

field ‹ number
field ‹= number
field eq number
field ›= number
field › number
field ne number
field = string
field != string
field = glob
field in item:item :...
user ingroup group
user notingroup group
user innetgr netgroup
user notinnetgr group

Exemples

Pour émuler de principe de pam_wheel, excepté qu'il ne revient pas au group 0
auth required pam_succeed_if.so quiet user ingroup wheel
charge seulement les autres modules si l'UID est › 500
type [ default=1 success=ignore ] pam_succeed_if.so quiet uid › 500
type required othermodule.so arguments
^
06 octobre 2010

htmlpdflatexmanmd




pam_shells

pam_shells

Vérifie les shells de login valides

   pam_shells autorise l'accès au système si le shell utilisateur est listé dans /etc/shells. Il vérifie également si /etc/shells est un fichier texte et n'est pas writable. Ne fournis que les type de module auth et account.

Valeurs retournées

PAM_AUTH_ERR l'accès a été refusé
PAM_SUCCESS l'accès est autorisé
PAM_SERVICE_ERR le module n'est pas capable d'obtenir le nom de l'utilisateur

Exemples

auth required pam_shells.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_selinux

pam_selinux

Définit le contexte de sécurité par défaut

   Quand une application ouvre une session en utilisant pam_selinux, le shell exécuté va se lancer dans un contexte de sécurité par défaut, ou si l'utilisateur choisit le fichier pam permet le contexte de sécurité sélectionné. Ajouter pam_selinux dans un fichier pam peut forcer les autres modules à changer leur mode. L'option close et open aident à mitiger le problème. l'option close va seulement forcer la portion close de pam_selinux a s'exécuter, et pam_open la portion open. Vous pouvez ajouter pam_selinux dans le fichier de configuration 2 fois. Ne fournit que le type de module session.

OPTIONS

close Exécute seulement la portion close_session à s'exécuter
debug syslog les information de debuggage
open exécute seulement laportion open_session du module
nottys ne tente pas de paramétrer le contexte de sécurité des tty
verbose tente d'informer l'utilisateur quand le contexte de sécurité est définis
select_context tente de demander à l'utilisateur un rôle de contexte de sécurité personnalisé. Si MLS est on demande aussi le niveau de sensibilité
env_param Tente d'obtenir un rôle de contexte de sécurité custom depuis l'environnement PAM. si MLS est on obtient également le niveau de sensibilité. Cette option est l'option select_context sont mutuellement exclusif. Les variables d'environnement PAM sont SELINUX_ROLE_REQUESTED, SELINUX_LEVEL_REQUESTED, et SELINUX_USE_CURRENT_RANGE. ce dernier s'il est définis à 1 force le module a fonctionner comme si use_current_range a été spécifié sur la ligne de commande.
use_current_range utilise le niveau de sensibilité du processus courant pour le context utilisateur au lieu du niveau par défaut. Supprime également la demande du niveau de sensibilité ou de tenter de l'obtenir via l'environnement PAM

Valeurs retournées

PAM_AUTH_ERR Ne peut pas récupérer ou définir de contexte valide
PAM_SUCCESS le contexte de sécurité a été définis
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

auth required pam_unix.so
session required pam_permit.so
session optional pam_selinux.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_securetty

pam_securetty

Limite le login root aux périphériques spéciaux

   pam_securtty permet les logins root seulement si l'utilisateur est loggé sur un tty sécurisé, comme définis par la liste dans /etc/securetty. Il vérifie également que /etc/securetty est un fichier texte et n'est pas writable. Ce module n'a pas d'effet sur les utilisateurs non-root et nécessite que l'application renseigne PAM-TTY correctement. Ne fournit que le type de module auth.

Valeurs retournées

PAM_SUCCESS l'utilisateur est autorisé à continuer l'authentification
PAM_AUTH_ERR Authentification rejetée
PAM_INCOMPLETE Une erreur d'application s'est produite
PAM_SERVICE_ERR erreur s'est produite
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

auth required pam_securetty.so
auth required pam_unix.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_rootok

pam_rootok

Obtenir un accès root

   pam_rootok authentifie l'utilisateur si sont uid est 0. Les applications qui sont crées setuid-root retiennent généralement l'UID de l'utilisateur mais se lancent avec l'effective UID. C'est le real UID qui est vérifié. Fournit les types de module auth, acct et password.

Valeurs retournées

PAM_SUCCESS l'UID est 0
PAM_AUTH_ERR l'UID n'estpas 0

Exemples

Dans le cas de l'application su, l'usage historique est de permettre au superuser d'adopter l'identité d'un utiliser inférieur sans utiliser de mot de passe. Pour obtenir de fonctionnement avec PAM les lignes suivantes sont necessaires dans /etc/pam.d/su
auth sufficient pam_rootok.so
auth required pam_unix.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_rhosts

pam_rhosts

Autorise l'accès en utilisant le fichier .rhosts

   Ce module effectue une authentification réseau standard pour les services, comme utilisé par les implémentations traditionnels de rlogin et rsh.

  Le mécanisme d'authentification de ce module est basé sur le contenu de 2 fichiers, /etc/hosts.equiv et/ou /.rhosts. Premièrement, les hôtes listés dans le fichier sont traités comme équivalent au localhost. Ensuite, les entrées dans la copie de l'utilisateur du fichier est utilisé pour mapper les paires "remote-host remote-user" au compte utilisateur sur l'hôte courant. L'accès est donné à l'utilisateur si son hôte est présent dans /etc/hosts.equiv et son compte distant identique à celui local, ou si le compte distant a une entrée dans le fichier de configuration personnel. Ne fournit que le type de module auth.

OPTIONS

debug Affiche des informations de debuggage
silent mode silencieux
superuser=account définit account en tant que root

Exemples

Pour autoriser l'acès à un utilisateur par /etc/hosts.equiv ou .rhosts pour rsh, ajouter les lignes suivantes dans /etc/pam.d/rsh
auth required pam_rhosts.so
auth required pam_nologin.so
auth required pam_env.so
auth required unix.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_pwhistory

pam_pwhistory

Autoriser l'accès en utilisant le fichier .pwhistory

   Ce module sauve les derniers mots de passe pour chaque utilisateur dans le but de forcer l'historique de changement de mot de passe et empêcher l'utilisateur d'alterner entre les même mots de passe trop fréquemment. Ce module ne fonctionne pas avec kerberos. En général, il n'a aucun sens en conjonction avec NIS ou LDAP, vu que les anciens mot de passe sont stockés sur la machine local et ne sont pas disponible sur une autre machine. Ne fournis que le type de module password.

OPTIONS

debug syslog les informations de debuggage
use_authtok En changeant de mot de passe, force à utiliser le nouveau mot de passe fournis par un module précédent (par exemple pam_cracklib)
enforce_for_root La vérification est forcée également pour root
remember=N Sauve les derniers N mots de passe dans /etc/security/opasswd. Défaut 10.
retry=N Demande à l'utilisateur N fois avant de retourner une erreur. Défaut 1.
authtok_type=STRING voir pam_get_authtok pour plus de détails

Valeurs retournées

PAM_AUTHTOK_ERR Aucun nouveau motde passe n'a été rentré, l'utilisateur a annulé le changement demot de passe ou le nouveau mot de passe ne peut pas être changé
PAM_IGNORE l'historique des mots de passe est désactivé
PAM_MAXTRIES Le mot de passe a été rejeté trop de fois
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

exemple de section password
password required pam_pwhistory.so
password required pam_unix.so use_authtok
En combinaison avec pam_cracklib
password required pam_cracklib.so retry=3
password required pam_pwhistory.so use_auththok
password required pam_unix.so use_authtok
^
06 octobre 2010

htmlpdflatexmanmd




pam_permit

pam_permit

Permet de toujours autoriser l'accès

   Dans le cas d'une authentification, le nom d'utilisateur est nobody si l'application n'est fournis pas un. Ce module est dangereux.

Exemples

Ajouter cette ligne dans les entrées other pour désactiver la gestion des comptes, mais continue de permettre aux utilisateurs de se logger
account required pam_permit.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_nologin

pam_nologin

Empêche les login non-root

   pam_nologin empêche les utilisateurs de se logger sur le système quand /var/run/nologin ou /etc/nologin existent. Le contenu du fichier est affiché à l'utilisateur. Ce module n'a pas d'effet sur l'utilisateur root. Fournis les types de module auth et account

OPTIONS

file=/path/nologin utilise ce fichier au lieu /var/run/nologin ou /etc/nologin
successok Retourne PAM_SUCCESS si aucun fichier n'existe, renvoie PAM_IGNORE par défaut

Valeurs retournées

PAM_AUTH_ERR L'utilisateur n'est pas root et /etc/nologin existes, l'utilisateur est permit à se logger.
PAM_BUF_ERR Erreur de tampon mémoire
PAM_IGNORE Valeur retournée par défaut
PAM_SUCCESS soit l'utilisateur est root, soit le fichier nologin n'existe pas
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

exemple d'utilisation dans /etc/pam.d/login
auth required pam_nologin.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_namespace

pam_namespace

Définit un espace de nom privé

   pam_namespace définit un espace de nom privé pour une session avec répertoire poly-instancés. Un répertoire poly-instancié fournis une instance différente de lui-même basé sur le nom utilisateur, ou en utilisant SELinux, le nom d'utilisateur, contexte de sécurité ou les 2. Si un script exécutable /etc/security/namespace.init existe, il est utilisé pour initialiser l'instance du répertoire après qu'il ai été définis et monté dans le répertoire poly-instancié. Le script reçoit le chemin du répertoire poly-instancié, le chemin du répertoire instance, si le répertoire instance a été nouvellement crée (0 pour non, 1 pour oui), et le nom de l'utilisateur.

  Le module dissocie l'espace de nom de session du parent. Un mount/umount est effectué dans l'espace de nom du parent.

   /etc/security/namespace.conf spécifie quels répertoires sont poly-instanciés, comment ils sont poly-instanciés, comment l'instance sera nommé, et les utilisateurs pour qui la poly-instatiation sera effectuée.

  Le format de /etc/security/namespace.conf:

  polydir instance_prefix method list_of_uids

polydir est un chemin absolu du répertoire à poly-instancier. La chaîne $HOME est remplacée avec le home de l'utilisateur, et $USER par le nom d'utilisateur. Ce champs ne peut pas être vide
instance_prefix chaîne utilisée pour construire le chemin pour l'instanciation de polydir. En fonction de la méthode de poly-instanciation
method est la méthode utilisée pour la poly-instanciation. Ce champs ne peut pas être vide. Peut être:

        user pour une poly-instaciation basé sur le nom d'utilisateur
        level pour une poly-instanciation basé sur le niveau MLS sur processus et le nom d'utilisateur
        context pour une poly-instanciation basé sur le contexte de sécurité du processus et le nom d'utilisateur
        tmpfs pour monter le système de fichier tmpfs comme instance de répertoire
        tmpdir pour créer un répertoire temporaire comme instance de répertoire qui est supprimé quand l'utilisateur ferme sa session
        context et level sont disponible uniquement avec SELinux.

list_of_uids est une liste séparée par une virgule de noms d'utilisateurs pour qui la poly-instanciation n'est pas effectuée. Si ce champs est vide, s'effectue pour tous les utilisateurs si la liste est précédée par " ", la poly-instanciation est effectuée uniquement pour les utilisateurs dans la liste.

   method peut aussi contenir les flags optionnels suivant:

        create=mode,owner,group crée le répertoire poly-instancié. Les paramètres sont optionnels. Par défaut le mode est déterminé par umask, owner est l'utilisateur et group est le groupe de l'utilisateur.
        iscript=path chemin du script d'init.
        noinit Le script d'init ne sera pas exécuté
        shared les répertoire instanciés pour les méthodes "context" et "level" ne contiendrons pas le nom d'utilisateur et seront partagés à tous les utilisateurs.

   Le répertoire où les instances poly-instanciées sont créées, doit exister et doit avoir, par défaut, le mode 0000. Cela nécessite que le parent de l'instance soit de mode 0000 et puisse être écrasé avec l'option de ligne de commande ignore_instance_parent_mode

  Avec les méthodes context et level, le contexte SELinux qui est utilisé est le contexte utilisé pour exécuter un nouveau processus comme obtenus par getexeccon. Ce contexte doit être définis par l'application appelante ou le module pam_selinux.so. Si ce contexte n'est pas définis la poly-instaciation sera basé uniquement sur le nom d'utilisateur.

OPTIONS

debug syslog les informations de debuggage
unmnt_remnt Pour les programmes comme su et newrole, le login session a déjà définis un espace de nom poly-instancié. Pour ces programmes, la poly-instanciation est effectuée basé sur le nouveau user id ou le contexte de sécurité, cependant la commande a d'abord besoin d'annuler la poly-instanciation effectuée par login. Cet argument instruit la commande d'annuler d'abord la précédente poly-instanciation avant de traiter avec la nouvelle basé sur le nouveau id/context
unmnt_only Pour les programmes de confiance qui veulent annuler un mount existant et traiter les répertoires instanciés, cet argument leur permet de démonter une instance actuellement montée.
require_selinux si SELinux n'est pas activé, retourne une erreur
gen_hash Au lieu d'utiliser la chaîne de contexte de sécurité pour le nom de l'instance, génère et utilise son hash md5
ignore_config_error Si une ligne dans le fichier de configuration correspondant à un répertoire poly-instancié contient une erreur de format, ignore le traitement de la ligne suivante. Sans cette option, pam va retourner une erreur au programme appelant, forçant à terminer la session
ignore_instance_parent_mode Les répertoires parents sont supposés avec le mode 000. En utilisant cette option, un administrateur peut choisir d'ignorer le mode du parent. À utiliser avec précaution vu que cela réduit le but d'isolation et de sécurité de la poly-instanciation
no_unmount_on_close Pour certain programmes de confiance comme newrole, la session ouverte est appelée depuis un processus enfant alors que le parent ferme la session. Pour ces commandes, utiliser cette option pour instruire pam_close_session de ne pas démonter le répertoire poly-instancié dans la parent.
use_current_context utile pour les services qui n'utilisent pas pam_selinux pour changer le contexte SELinux avec l'appel setexeccon. Le module va utiliser le contexte SELinux par défaut de l'utilisateur pour la poly-instanciation level et context

   ne fournis que le type de module session. Ce module ne doit pas être appelé depuis un processus multithread.

Valeurs retournées

PAM_SUCCESS espace de nom définit avec succès
PAM_SERVICE_ERR erreur inattendue
PAM_SESSION_ERR erreur de configuration inattendue

Exemples

exemple de ligne dans /etc/security/namespace.conf
/tmp /tmp-inst/ level root,adm
/var/tmp /var/tmp/tmp-inst/ level root,adm
$HOME $HOME/$USER.inst/inst- context
ligne à placer dans une fichier de config
session required pam_namespace.so [arguments]
^
06 octobre 2010

htmlpdflatexmanmd




pam_motd

pam_motd

Afficher le fichier motd

   pam_motd permet d'afficher le contenu d'un fichier motd une fois loggé avec succès. par défaut /etc/motd. La taille du message est limitée à 64Ko. Ne fournit que le type de module session.

Valeurs retournées

PAM_IGNORE c'est la seule valeur retournée par ce module

Exemples

exemple d'utilisation dans /etc/pam.d/login
session optional pam_motd.so motd=/etc/motd
^
06 octobre 2010

htmlpdflatexmanmd




pam_mkhomedir

pam_mkhomedir

Créer un répertoire home

   ce module crée un répertoire home utilisateur s'il n'existe pas quand la session commence. Cela permet aux utilisateurs d'être présent dans la base central (tel que NIS, kerberos ou LDAP) sans utiliser un système de fichier distribué ou en pré-créant un grand nombre de répertoires. Le répertoire squelette (généralement /etc/skel/) est utilisé pour copier les fichiers par défaut et définir également un umask pour l'utilisateur.

OPTIONS

silent N'affiche pas d'information
skel=/path/to/skel/directory Spécifie le répertoire squelette
umask Spécifie le masque de création de fichiers

Valeurs retournées

PAM_BUF_ERR Erreur de tampon mémoire
PAM_CRED_INSUFFICIENT insufficient credentials to access authentification data
PAM_PERM_DENIED Pas assez de permission pour créer le nouveau répertoire ou lire le dossier squelette
PAM_USER_UNKNOWN utilisateur inconnu
PAM_SUCCESS variables d'environnement définis

Exemples

un exemple du fichier /etc/pam.d/login
auth requisite pam_securetty.so
auth sufficient pam_ldap.so
auth required pam_unix.so
auth required pam_nologin.so
account sufficient pam_ldap.so
account required pam_unix.so
password required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_unix.so
session optional pam_lastlog.so
session optional pam_mail.so standard
^
06 octobre 2010

htmlpdflatexmanmd




pam_mail

pam_mail

Informe sur les mails disponible

   Ce module fournis le service "you have a new mail" à l'utilisateur. Fournis les types de module session et auth

OPTIONS

close indique si l'utilisateur à un mail au logout également
debug Affiche des informations de debuggage
dir=maildir recherche les mails de l'utilisateur dans le répertoire spécifié par maildir/‹login› par défaut : /var/log/mail/‹login›
empty Affiche également un message si l'utilisateur n'a pas de mail
hash=count mail directory hash depth
noenv ne définit pas la variable d'environnement MAIL
nopen n'affiche pas d'information au login. Utile pour définir MAIL sans rien afficher
quiet n'affiche que lorsqu'il y'a des nouveaux mail
standard ancien format "You have...". implique empty également

Valeurs retournées

PAM_BUF_ERR erreur tampon mémoire
PAM_SERVICE_ERR argument malformé
PAM_SUCCESS succès
PAM_USER_UNKNOWN utilisateur inconnu

Exemples

Ajouter cette ligne dans /etc/pam.d/login pour indiquer que l'utilisateur a de nouveau mails quand il se log sur le système
session optional pam_mail.so standard
^
06 octobre 2010

htmlpdflatexmanmd




pam_localuser

pam_localuser

Les Utilisateurs doivent être listés dans le fichier passwd

   fournis tous les types de module

OPTIONS

debug affiche des informations de debugagge
file=/path/passwd Utilise un fichier autreque /etc/passwd

Valeurs retournées

PAM_SUCCESS le nouvel utilisateur local a été définis avec success
PAM_SERVICE_ERR Aucun nom d'utilisateur n'a été donné
PAM_USER_UNKNOWN Utilisateur inconnus

Exemples

Ajouter cette ligne dans /etc/pam.d/su pour permettre au utilisateurs du groupe wheel à utiliser su
account suficient pam_localuser.so
account required pam_whell.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_listfile

pam_listfile

Autorise ou refuse les services basé sur un fichier arbitraire

   le mdule récupère l'item du type spécifié:

        user spécifie le username, PAM_USER
        tty spécifie le nom du terminal, PAM_TTY
        rhost spécifie le nom de l'hôte distant, PAM_RHOST
        ruser spécifie l'utilisateur distante, PAM_TUSER

   et cherche une instance de cet item dans file=filename. filename contient une ligne par item listé. Si l'item est trouvé, alors si sense=allow, retourne PAM_SUCCESS sinon si sense=deny, retourne PAM_AUTH_ERR.

   Si une erreur est rencontrée (par exemple si filename n'existe pas ou un argument mal construit est trouvé), alors si onerr=succeed, retourne PAM_SUCCESS, sinon si onerr=fail, retourne PAM_AUTH_ERR ou PAM_SERVICE_ERR.

  apply= peut être utilisé pour restreindre l'application à un utilisateur spécifique (apply=username) ou un groupe (apply=@groupname). Utile seulement avec tty, rhost et shell

OPTIONS

item=[tty|user|rhost|ruser|group|shell] Ce qui est listé dans le fichier et doit être vérifié
sense=allow Action à prendre si trouvé dans le fichier.
file=/path/filename Fichier contenant un item par ligne
onerr=succeed quoi faire si quelques chose se produit comme l'impossibilité d'ouvrir le fichier
apply=user restreint à l'utilisateur ou le groupe spécifié
quiet ne log par les erreurs

   fournis tous les types de module

Valeurs retournées

PAM_SUCCESS en cas de succès
PAM_AUTH_ERR en cas d'échec
PAM_BUFF_ERR, PAM_SERVICE_ERR en cas d'erreur interne
PAM_IGNORE si aucune rêgle ne s'applique

Exemples

l'authentification classique ftpusers peut être implémenté avec cette entrée dans /etc/pam.d/ftpd
auth required pam_listfile.so onerr=succeed item=user sense=deny file=/etc/ftpusers
note que les utilisateur listés dans /etc/ftpusers ne sont pas autorisés pour accéder au service ftp
Pour autoriser le login pour certains utilisateurs, vous pouvez utiliser une entrée dans /etc/pam.d/login
auth required pam_listfile.so onerr=fail item=user sense=allow file=/etc/loginusers
^
06 octobre 2010

htmlpdflatexmanmd




pam_limits

pam_limits

Limiter les ressources

   pam_limits définit les limites des ressources système qui peuvent être obtenues dans une session utilisateur. Les utilisateurs uid=0 sont affectés par cette limite également. Par défaut, les limites sont définies dans /etc/security/limits.conf, puis les fichiers *.conf dans /etc/security/limits.d/. Ce module ne doit pas être appelé avec une application multi-thread.

  Si Linux-PAM est compilé avec le support audit, le module report quand il refuse l'accès basé sur une limite du nombre maximum d'utilisateurs de sessions login courante. Ne fournit que le type de module session.

Description de la configuration

‹domain› ‹type› ‹item› ‹value›

domain un utilisateur, un @groupe, '*' pour l'entrée par défaut et '%' pour la limite maxlogins uniquement, peut aussi être utilisée avec la syntaxe %groupe
type hard, soft et '-' le dernier force les 2 limites ensemble
item Peut avoir les éléments suivant:

        core limite la taille du fichier core (Ko)
        data taille de donnée maximum (Ko)
        fsize taille de fichier max (Ko)
        memlock allocation mémoire max (Ko)
        nofile nombre max de fichiers ouverts
        stack taille de pile max (Ko)
        cpu nombre de CPU
        nproc nombre max de processus
        as limite d'espace d'adresse (Ko)
        maxlogins nombre max de logins pour cet utilisateur (sauf pour uid=0)
        maxsyslogins Nombre max de logins sur le système
        priority (priorité du processus utilitateur)
        locks nombre max de fichiers lockés
        sigpending nombre max de signaux en suspend
        msqueue mémoire max utilisée par la queue de message POSIX
        nice priorité nice max autorisé
        rtprio priorité realtime max pour les processus non-privilégiés

   toutes les valeurs peuvent être -1, unlimited ou infinity sauf pour priority et nice

OPTIONS

change_uid change le real uid de l'utilisateur pour qui les limites sont définies.
conf=/path/to/limits.conf Spécifie l'emplacement du fichier de limites
debug Affiche des informations de debugage
utmp_early certains applications cassés allouent une entrée utmp pour l'utilisateur avant que l'utilisateur soit admis sur le système. si certains services configurés pour faire çà, vous pouvez sélectivement utiliser cet argument pour compenser ce fonctionnement.
noaudit Ne rapporte pas les excès de logins au système d'audit

Valeurs retournées

PAM_ABORT Ne peut pas avoir les limites
PAM_IGNORE Aucune limite trouvée pour l'utilisateur
PAM_PERM_DENIED les nouvelles limites ne peuvent pas être définies
PAM_SERVICE_ERR Ne peut pas lire le fichier de config
PAM_SUCCESS Les limites ont été changés

Exemples

* soft core 0
* hard rss 10000
@student hard nproc 20
@faculty soft nproc 20
@faculty hard nproc 50
ftphard nproc 0
@student - maxlogins 4
^
06 octobre 2010

htmlpdflatexmanmd




pam_lastlog

pam_lastlog

Affiche une ligne d'information sur la dernière connexion de l'utilisateur

   Le module maintient le fichier /var/log/lastlog.

OPTIONS

debug Affiche des informations de debuggage
silent N'informe par 'utilisateur sur le précédent login, met simplement à jours /var/log/lastlog
never Si /var/log/lastlog est vide, indique à l'utilisateur qu'il n'a jamais été loggé
nodate N'affiche pas la date du dernier login
noterm N'affiche pas le nom du terminal
nohost N'indique pas depuis quel hôte le dernier login a eu lieu
nowtmp Ne met pas à jour l'entrée wtmp
noupdate Ne met aucun fichier à jour
showfailed Affiche le nombre de logins échoués et la date de la dernier tentative échouée depuis btmp

Valeurs retournées

PAM_SUCCESS tout est ok
PAM_SERVICE_ERR Erreur interne
PAM_USER_UNKNOWN utilisateur inconnu

Exemples

Ajouter cette ligne dans /etc/pam.d/login pour afficher le dernier login d'un utilisateur
session required pam_lastlog.so wtmp
^
06 octobre 2010

htmlpdflatexmanmd




pam_loginuid

pam_loginuid

Définis le loginuid process attribute pour le processus authentifié

   C'est nécessaire pour auditer correctement les applications. Ce module devrait être utilisé seulement pour les applications d'entrée comme login, sshd, sshd, gdm, vsftpd, crond et atd. Vous ne devriez pas utiliser ce module avec des application comme sudo ou su. Ne fournis que les types de module session

OPTIONS

require_auditd Force le module à questionner le status du démon d'audit et refuser les logins s'il n'est pas lancé.

Exemples

auth required pam_unix.so
auth required pam_nologin.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
session required pam_loginuid.so
^
06 octobre 2010

htmlpdflatexmanmd




pam_keyinit

pam_keyinit

Affiche le fichier keyinit

   pam_keyinit s'assure que le process invoque une session keyring autre que la session keyring par défaut de l'utilisateur. Il vérifie si la session keyring du processus est le défaut de l'utilisateur, et si c'est le cas, crée une nouvelle session keyring anonyme. Ce module est utilié principalement pour les processus de login. Ce module ne devrait pas être invoqué par des programmes comme su. Le package keyutils est utilisé pour manipuler les clés plus directement.

OPTIONS

debug Affiche des informations de debuggage
force force le session keyring du processus invoquant pour être remplacé inconditionnellement
revoke Force le session keyring du processus invoquant pour être révoqué quand ce processus quitte si le session keyring pour ce processus

Valeurs retournées

   ne fournit que le type de module session. Retourne PAM_SUCCESS, pam_ATH_ERR, PAM_BUF_ERR, PAM_IGNORE, PAM_SERVICE_ERR, PAM_SESSION_ERR et PAM_USER_UNKNOWN

Exemples

Ajouter cette ligne dans les entrées logins pour commencer chaque session login avec sa propre session keyring
session required pam_keyinit.so
^
04 octobre 2010

htmlpdflatexmanmd




pam_issue

pam_issue

Ajoute un message au prompt

   Ne fournis que le type de module auth. Il reconnait les caractères échappés suivant:

\d jours
\l nom du tty
\m architecture de la machine (uname -m)
\n nom d'hôte du noeud réseau de la machine (uname -n)
\o nom de domain du système
\r version du système d'exploitation (uname -r)
\t heure
\s Nom du système d'exploitation (uname -s)
\u nombre d'utilisateurs actuellement loggés
\U idem à \u mais suffixe "user" ou "users"
\v Version du système (uname -v)

OPTIONS

noesc désactive l'interprétation des caractères d'échappement
issue=issue-file-name Fichier de sortie

Valeurs retourmées

   Retoune PAM_BUF_ERR, PAM_IGNORE, PAM_SERVICE_ERR et PAM_SUCCESS (le nouveau prompt a été définis)

Exemples

Ajouter cette ligne dans /etc/pam.d/login pour définir une message au login
auth optional pam_issue.so issue=/etc/issue
^
04 octobre 2010

htmlpdflatexmanmd




pam_group

pam_group

Modifie l'accès des groupes

   Ce module fonctionne en parallèle avec /etc/group. Il n'authentifie pas l'utilisateur, mais son groupe. Par défaut les règles sont définies dans /etc/security/group.conf. Il ne fournis que le module auth. La syntaxe est la suivante:

  services;ttys;users;times;groups

services est une liste logique de noms de services PAM auquel la règle s'applique
tty est une liste logique de noms de terminal auquel la règle s'applique
users est une liste logique d'utilisateurs ou un groupe ou un netgroup auquel la règle s'applique les groupes sont précédés par '%' et les netgroup par '@'
times est utilisé pour indiquer quand ces groupes sont donnés à l'utilisateur. Le format est une liste de jour/plage-de-temps. Les jours sont spécifié par une séquence de 2 caractères, MoTuSa par exemple signifie Monday Tuesday et Saturday. Noter que les jours qui sont répétés s'annulent: MoMo = aucun jour, MoWk = toute la semaine sauf lundi. peut être Mo Tu We Th Fr Sa Su Wk Wd Al. On peut préfixer les jours avec ' !' pour spécifier "tout sauf". La plage de temps est sous la forme de 2 fois "HHMM".
groups est une liste de groupes que l'utilisateur hérite. Ces groupes sont ajoutés si les champs précédents sont satisfaits

Valeurs retournées

PAM_SUCCESS le membre du groupe est autorisé
PAM_ABORT aucune donnée nécessaire n'est trouvée
PAM_BUF_ERR Erreur de tampon mémoire
PAM_CRED_ERR Le membre du groupe n'est pas autorisé
PAM_IGNORE pam_sm_authenticate a été appelé et ne fait rien
PAM_USER_UNKNOWN utilisateur inconnu

Exemples

En lancant xsh sur tty*, l'utilisateur 'us' à accès à la disquette (au travers du groupe floppy)
xsh ;tty*& !ttyp* ;us ;al0000-2400 ;floppy
idem, l'utilisateur sword a accès aux jeux via le groupe le groupe floppy après les heures de travail
xsh ; tty* ; sword ; !Wk0900-1800 ; games, sound
xsh ; tty* ; * ; Al0900-1800 ; floppy
Un membre du groupe admin tournant sous xsh sur tty* a accès au group plugdev
xsh ; tty* ; %admin ; Al0000-2400 ; plugdev
^
04 octobre 2010

htmlpdflatexmanmd




pam_ftp

pam_ftp

Module pour accès anonyme

   pam_ftp est un module PAM qui fournis un accès anonymous style ftp. Ce module intercèpte le nom et le mot de passe de l'utilisateur. Si le nom est ftp ou anonymous, le mot de passe de l'utilisateur est supprimé au délimiteur '@' dans PAM_RUSER et PAM_RHOST; Le nom d'utilisateur est définis à ftp. dans ce cas, le module succède. Alternativement, le module définis PAM_AUTHTOK avec le mot de passe entré et échoue. Ce module n'est pas sûr.

OPTIONS

debug Affiche des informations de debuggage
ignore Ne fait pas attention à l'email de l'utilisateur s'il est fournit
ftp=XXX,YYY,... Au lieu de ftp et anonymous, fournis un login anonymous à la liste des utilisateurs spécifiés.

   Ne fournis que le module auth. retoune PAM_SUCCESS en cas de succès et PAM_USER_UNKNOWN s'il ne connait pas l'utilisateur.

Exemples

Ajouter ces lignes dans /etc/pam.d/ftpd pour manipuler les logins anonyme style ftp
auth sufficient pam_ftp.so
auth required pam_unix.so use_first_pass
auth required pam_listfile.so onerr=succeed item=user sense=deny file=/etc/ftpusers
^
04 octobre 2010

htmlpdflatexmanmd




pam_filter

pam_filter

Module de filtrage

   Ce module fournis un accès à toute entrée/sortie qui passent entre l'utilisateur et l'application. C'est seulement utilisable pour les tty et les applications stdin/stdout.

  Pour fonctionner ce module requière que les filtres soient installés sur le système. Le simple filtre fournit avec le module transpose simplement les lettres majuscules/minuscules sur les flux d'entrée/sortie.

  Chaque composant du module a le potentiel d'invoquer le filtre désiré. Le filtre est toujours appelé avec le privilège de l'application appelante et non l'utilisateur. Pour cette raison il ne peut pas être tué par l'utilisateur sans fermer sa session

OPTIONS

debug Affiche des informations de debuggage
new_term L'action par défaut du filtre est de définir PAM_TTY pour indiquer le terminal que l'utilisateur utilise pour se connecter à l'application. Cet argument indique que le filtre devrait définit PAM_TTY au terminal pseudo-filtré
non_term Ne tente pas de définit PAM_TTY
runX Pour que le module invoque un filtre il doit savoir quand l'invoquer. Cet argument spécifie quand le faire. Les valeurs permises sont 1 et 2 qui indique le temps précis où le filtre est lancé.
filter Le chemin du filtre

Valeurs retournées

PAM_SUCESS Le nouveau filtre à été définit correctement
PAM_ABORT Erreur critique

Exemples

Ajouter cette ligne dans /etc/pam.d/login pour voir comment configurer le login pour transposer les lettre majuscule et minuscule une fois l'utilisateur loggé
session required pam_filter.so /lib/security/pam_filter/upperLOWER
^
04 octobre 2010

htmlpdflatexmanmd




pam_faildelay

pam_faildelay

Change le délai d'échec

   Sans délai donné, utilise la valeur FAIL_DELAY dans /etc/login.defs

OPTIONS

debug syslog les informations de debuggage
delay=N Définis le délai en microsecondes

Valeurs retournées

PAM_IGNORE Le délai a été ajusté avec succès
PAM_SYSTEM_ERR Le délai spécifié n'est pas valide

Exemples

L'exemple suivant définis le délai d'échec à 10 secondes
auth optional pam_faildelay.so delay=10000000
^
04 octobre 2010

htmlpdflatexmanmd




pam_exec

pam_exec

Appeler une commande externe

   L'environnement de l'enfant est définit dans la liste d'environnement PAM courante, comme retournée par pam_getenvlist. En plus les items PAM suivant sont exportés: PAM_RHOST, PAM_RUSER, PAM_SERVICE, PAM_TTY, PAM_USER et PAM_TYPE, qui contiennent un des types de modules: account, auth, password, open_session et close_session.

OPTIONS

debug Affiche des informations de debugage
expose_authtok Durant l'authentification la commande appelé peut lire le mot de passe depuis stdin
log=file La sortie de la commande est ajouté au fichier spécifié
quiet Par défaut le module affiche le statut de sortie. quiet supprime ce message
seteuid Par défaut le module va exécuter la commande externe avec le real user ID du processus appelant. Spécifier cette option signifie que la commande est lancé avec l'effective user ID.

Valeurs retournées

PAM_SUCCESS La commande externe à été exécutée avec succès
PAM_SERVICE_ERR Aucun argument ou nombre d'arguments incorrect
PAM_SYSTEM_ERR Une erreur système s'est produite ou la commande a échouée
PAM_IGNORE pam_setcred a été appelé, qui n'exécute pas la commande

Exemples

Ajouter cette ligne dans /etc/pam.d/passwd pour reconstruire la base NIS après chaque changement de mot de passe local
password optional pam_exec.so /usr/bin/make -C /var/yp
^
04 octobre 2010

htmlpdflatexmanmd




pam_env

pam_env

Définis des variables d'environnement

   Par défaut, les règles sont définies dans /etc/security/pam_env.conf. Chaque ligne commence avec le nom de la variable, puis 2 options possibles pour chaque variable DEFAULT et OVERRIDE. DEFAULT autorise à définir la variable à une valeur par défaut. OVERRIDE remplace la valeur par défaut.

VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]

   Les variables d'environnement peuvent être utilisées dans les valeurs en utilisant $string et les PAM_ITEM peuvent être utilisés avec @string

OPTIONS

conffile=/path/to/pam_env.conf Spécifie le fichier de règles
debug syslog les informations de debugage
envfile=/path/to/environment Indique le fichier d'environnement à remplacer par défaut. Utile quand différents services nécessitent des environnements différents.
readenv=0|1 Active la lecture du fichier spécifié par envfile
user_envfile=filename Indique un fichier d'environnement .pam alternatif à remplacer par défaut. Ce fichier est relatif au répertoire home de l'utilisateur
user_readenv=0|1 active la lecture du fichier d'environnement utilisateur.

Valeurs retournées

PAM_ABORT Toutes les données et options ne peuvent être reçues
PAM_BUF_ERR Erreur de tampon mémoire
PAM_IGNORE Aucun pam_env.conf et fichier d'environnement ne peut être trouvé
PAM_SUCCESS Les variables d'environnement ont été définis

Exemples

Définis la variable REMOTEHOST pour tous les hôtes distant, "localhost" par défaut au lieu de ne rien définir du tout
REMOTEHOST DEFAULT=localhost OVERRIDE=@PAM_HOST
Définis la variable DISPLAY si elle semble raisonnable
DISPLAY DEFAULT=$REMOTEHOST:0.0 OVERRIDE=$DISPLAY
Quelques variales simple
PAGER DEFAULT=less
MANPAGER DEFAULT=less
LESS DEFAULT="M q e h15 z23 b80"
NNTPSERVER DFAULT=localhost
PATH DEFAULT=$HOME/bin :/usr/local/bin :/bin :/usr/bin :/usr/local/bin/X11 :/usr/bin/X11
Autres exemple
DOLLAR DEFAULT=\$
DOLLARDOLLAR DEFAULT=
DOLLARPLUS DEFAULT=\$REMOTEHOST$REMOTEHOST
ATSIGN DEFAULT="" OVERRIDE=\@
^
04 octobre 2010

htmlpdflatexmanmd




pam_echo

pam_echo

Afficher du texte

   pam_echo est un module qui affiche des messages texte pour informer l'utilisateur. Les séquences commençant par % sont interprétés comme suit:

        %H Le nom de l'hôte distant (PAM_RHOST)
        %h Le nom de l'hôte local
        %s le nom du service (PAM_SERVICE)
        %t Le nom du terminal (PAM_TTY)
        %U Le nom de l'utilisateur distant (PAM_RUSER)
        %u Le nom de l'utilisateur local (PAM_USER)

file=/path/message Le contenu du fichier sera affiché

   Tous les types de module sont fournis.

Valeurs retournées

PAM_BUF_ERR Erreur de tampon mémoire
PAM_SUCCESS le message s'est affiché correctement
PAM_IGNORE PAM_SILENT est donné ou le fichier de message n'existe pas

Exemples

Exemple montrant comment afficher des information sur les bons mots de passe:
password optional pam_echo.so file/usr/share/doc/good-password.txt
password required pam_unix.so
^
04 octobre 2010

htmlpdflatexmanmd




pam_deny

pam_deny

Refuser l'accès, indique toujours une erreur.

Valeurs retournées

PAM-AUTH_ERR retournée par les services account et auth
PAM_CRED_ERR retourné par la fonction setcred
PAM_AUTHTOK_ERR retourné par le service password
PAM_SESSION_ERR retourné par le service session

Exemples

other auth required pam_warn.so
other auth required pam_deny.so
other account required pam_warn.so
other account required pam_deny.so
other password required pam_warn.so
other password required pam_deny.so
other session required pam_warn.so
other session required pam_deny.so
^
04 octobre 2010

htmlpdflatexmanmd




pam_debug

pam_debug

ce module sert à des fin de débuggage pour déterminer comment la pile PAM opère

OPTIONS

auth=value La fonction pam_sm_authenticate retourne value
cred=value La fonction pam_sm_setcred retourne vlaue
acct=value La fonction pam_sm_acct_mgmt retourne value
prechauthtok=value La fonction pam_sm_chauthtok retourne value si le flag PAM_PRELIM_CHECK est mis
chauthtok=value La fonction pam_sm_chauthtok retourne value si le flag PAM_PRELIM_CHECK n'est pas mis
open_session=value La fonction pam_sm_open_session retourne value
close_session=value La fonction pam_sm_close_session retourne value

   où value peut être: success, open_err, symbol_err, service_err, system_err, buf_err, perm_denied, auth_err, cred_insufficient, authinfo_unavail, user_unknown, maxtries, new_authtok_reqd, acct_expired, session_err, cred_unavail, cred_expired, cred_err, no_module_data, conv_err, authtok_err, authtok_recover_err, authtok_lock_busy, authtok_disable_aging, try_again, ignore, abort, authtok_expired, module_unknown, bad_item, conv_again, incomplete.

   Fournis tous les modules et retourne le code PAM_SUCCESS par défaut si aucune autre valeur n'a été spécifié, sinon retourne la valeur.

Exemples

auth requisite pam_permit.so
auth [success=2 default=ok] pam_debug.so auth=perm_denied cred=success
auth [default=reset] pam_debug.so auth=success cred=perm_denied
auth [success=done default=die] pam_debug.so
auth optional pam_debug.so auth=perm_denied cred=perm_denied
auth sufficient pam_debug.so auth=success cred=success
^
03 octobre 2010

htmlpdflatexmanmd




pam_cracklib

pam_cracklib

Vérifie le mot de passe via dictionnaire

   ce module peut être utilisé dans la pile password. Il demande un mot de passe et vérifie sa complexité avec un dictionnaire et définis des rêgles pour identifier les choix faibles. Si le mot de passe est jugé suffisemment fort, le module redemande confirmation du mot de passe à l'utilisateur. Si tout s'est bien passé le mot de passe est passé au modules suivants pour être installé comme nouveau token d'authentification.

   La vérification du mot de passe s'effectue comme suit: la routine Cracklib est appelé pour vérifier si le mot de passe est trouvé dans un dictionnaire; et si ce n'est pas le cas, une autre vérification est faite:

        Palindrome Est-ce que le nouveau mot de passe est un palindrome
        case change only Est ce que le nouveau mot de passe et l'ancien non qu'un changement de casse
        similar Si le nouveau mot de passe est trop proche de l'ancien. Principalement contrôlé par un argument, difok qui est un nombre de caractères qui diffèrent. Le défaut est 10 ou la moitié de la taille du nouveau mot de passe s'il est inférieur.
        simple Est ce que le mot de passe est trop petit. Contrôlé par 5 arguments: minlen, dcredit, ucredit, lcredit et ocredit.
        rotated Est ce que le nouveau mot de passe est une rotation de l'ancien mot de passe.
        Same Consecutive characters Vérification optionnelle des caractères consécutifs
        Contains user name Vérification optionnel desmots de passe contenant le nom de l'utiliateur.

   Ce module n'a pas d'argument. Avec le crypte md5, les mots de passe ne peuvent dépasser 8 caractères.

OPTIONS

debug Écrit des informations dans syslog.
authok_type=XXX Remplace le mot UNIX dans "New UNIX password : " et "Retype UNIX password : " par celui spécifié
retry=N Demande à l'utilisateur N fois avant de retourner une erreur. Défaut 1.
difok=N Change la règle par défaut de 5 caractères dans le nouveau mot de passe qui ne doivent pas être présent dans l'ancien mot de passe.
difignore=N Combien de caractères doit avoir le mot de passe avant que difok soit ignoré. Défaut est 23.
minlen=N Taille minimum pour le nouveau mot de passe (plus 1 si credits ne sont pas désactivé - défaut) Défaut 9
dcredit=N Credit maximum pour avoir des chiffres dans le mot de passe. défaut 1
ucredit=N crédit maximum pour avoir des lettres majuscule dans le mot de passe
lcredit=N Crédit maximum pour avoir des lettre minuscule dans le mot de passe.
ocredit=N Crédit maximum pour avoir d'autres caractères dans le mot de passe
minclass=N Nombre minimum de classes de caractère requises. Les 4 classes sont les chiffre, minuscules, majuscules et les autres. défaut 0
maxrepeat=N Nombre maximum de caractères consécutifs identiques dans le mot de passe.
reject_username Rejète le mot de passe s'il contient le nom de l'utilisateur
use_authtok Utilisé pour forcer le module à ne pas demander de nouveau mot de passe mais d'en utiliser un fournis par le module passowrd précédent.
dictpath=/path/to/dict Chemin vers les dictionnaires

Valeurs retournées

PAM_SUCCESS le nouveau mot de passe à passé toutes les vérifications
PAM_AUTHTOK_ERR Aucun nouveau mot de passe n'a été entré, le nom d'utilisateur ne peut pas être déterminé ou le nouveau mot de passe à échoué la vérification
PAM_AUTHTOK_RECOVERY_ERR L'ancien mot de passe n'a pas été fournis par un module précent ou n'est pas fournis par l'utilisateur
PAM_SERVICE_ERR Une erreur interne s'est produite

Exemples

Exemple montrant commant il peut être stacké avec le composant password de pam_unix:
passwd password required pam_cracklib.so retry=3
passwd password required pam_unix.so use_authtok
Autre exemple dans le cas où vous voulez utiliser md5:
password required pam_cracklib.so difok=3 minlen=15 dcredit=2 ocredit=2
password required pam_uix.so use_authtok nullok md5
Autre exemple dans le cas où vous ne voulez pas utiliser les crédits:
password required pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit
=0 minlen=0
password required pam_unix.so use_authtok nullok md5
^
03 octobre 2010

htmlpdflatexmanmd




pam_access

pam_access

Module de contrôle d'accès

   Ce module est principalement utilisé pour la gestion d'accès. Il fournit contrôle d'accès de login style logdaemon sur les noms de logins, hôtes ou noms de domaines, les adresses internet ou réseaux ou nom de lignes terminal. Les rêgles d'accès par défaut sont pris dans /etc/security/access.conf. Si PAM est compilé avec le support d'audit, le module reporte quand il refuse l'accès basé sur l'origine (hôte ou tty).

   Le fichier de rêgles par défaut spécifie des combinaisons (user/group, host) (user/group, network/mask) (user/group, tty) pour qu'un login soit accèpté ou refusé. L'ordre est important, le module s'arrête à la première correspondance trouvée. Chaque ligne possède la syntaxe suivante:

permission:users/groups:origins
- Le premier champs est soit '+' pour authoriser l'accès soit '-' pour l'interdire.
- Le second champ est une liste d'un ou plusieurs noms de login, groups, ou ALL. Pour différencier les noms des groupes, les groupes sont écris entre parenthèses.
- Le troisième champ est une liste de noms tty, noms d'hôtes, noms de domaines (commençant par '.'), numéros de réseau (se termine par '.'), addresse réseaux avec le masque, ALL ou LOCAL qui correspond uniquement si PAM_RHOST n'est pas définis et le champs origin est définis depuis PAM_TTY ou PAM_SERVICE. Il est possible d'utiliser @netgroupname dans l'hôte ou les pattern utilisateur.
- L'opérateur EXCEPT permet d'écrire des rêgles compacte.
- Si nodefgroup n'est pas définis, le fichier group est recherché quand un nom ne correspond pas à l'utilisateur. Seul les groupes qui correspondant à de tels utilisateurs sont explicitement listés.

OPTIONS

accessfile=/path/to/access.conf Spécifie le fichier de rêgles à utiliser
debug syslog de nombreuses informations
noaudit Ne report pas les logins des hôtes et tty non autorisés dans le sous-système d'audit.
fieldsep=separators Modifie le séparateur par défaut
listsep=separators Modifie le séparateur de listes
nodefgroup Les tokens utilisateurs qui ne sont pas entre parenthèse ne correspondent jamais aux groupes

Codes de retour

PAM_SUCCESS accès autorisé
PAM_PERM_DENIED Accès non autorisé
PAM_IGNORE pam_setcred a été appelé et ne fait rien
PAM_ABORT Aucune donnée ou option ne peut être donné.
PAM_USER_UNKNOWN utilisateur inconnus du système

Exemples

l'utilisateur root devrait toujours être autorisé à accéder à cron, X11, et les tty
+:root:crond :0 tty1 tty2 tty3 tty4 tty5 tty6
root devrait avoir accès depuis les hôtes qui ont une IPv4
+:root:192.168.200.1 192.168.200.4 192.168.200.9
+:root:127.0.0.1
root devrait avoir accès depuis les réseau 192.168.201.0
+:root:192.168.201.
ou
+:root:192.168.201.0/24
ou
+:root:192.168.201.0/255.255.255.0.
root devrait avoir accès depuis les hôtes foo1.bar.org et foo2.bar.org
+:root:foo1.bar.org foo2.bar.org
root devrait avoir accès depuis le domaine foo.bar.org
+:root:.foo.bar.org
root ne devrait pas avoir accès à toutes les ressources
-:root:ALL
l'utilisateur foo et le groups admins devraitent avoir accès à toutes les sources
+:@admins foo:ALL
Les utilisateurs john et foo devraient avoir accès depuis une adresse IPv6
+:john foo:2001:db8:0:101 ::1
john devrait avoir accès depuis le réseau IPv6
+:john:2001:db8:0:101 ::/64
interdire les logins console à tout le monde sauf shutdown, sync et tous les autres comptes, qui sont membre du groupe wheel
-:ALL EXCEPT (wheel) shutdown sync:LOCAL
Tous les autres utilisateurs devraient être refusés depuis toutes les autres sources
-:ALL:ALL
^
03 octobre 2010

htmlpdflatexmanmd




PAM

PAM

Pluggable Authentication Modules

   Linux-PAM est un système de librairies qui manipulent les tâches d'authentification des services dans le système. La librairie fournis une API qui fournis un système d'authentification déféré.

   La fonctionnalité principal de PAM est la nature de l'authentification qui est configurable dynamiquement. L'administrateur est libre de choisir comment les applications vont authentifier un utilisateur. La configuration individuelle peut être définie dans le fichier de configuration /etc/pam.conf. Alternativement, la configuration peut être définie dans des fichiers individuels dans /etc/pam.d/.

   Linux-PAM sépare les tâches d'authentification en 4 groupes indépendants: gestion des comptes; gestion de l'authentification; gestion des mots de passe; gestion de session.

   Le mécanisme account fournit une seule primitive: il vérifie si le compte demandé est disponible (si le compte n'est pas arrivé à expiration, si l'utilisateur est autorisé à se connecter à cette heure de la journée, etc.).

   Le mécanisme auth fournit deux primitives; il assure l'authentification réelle, éventuellement en demandant et en vérifiant un mot de passe, et il définit des "certificats d'identité" tels que l'appartenance à un groupe ou des "tickets" kerberos.

   Le mécanisme password fournit une seule primitive: il permet de mettre à jour le jeton d'authentification (en général un mot de passe), soit parce qu'il a expiré, soit parce que l'utilisateur souhaite le modifier.

   Le mécanisme session fournit deux primitives: mise en place et fermeture de la session. Il est activé une fois qu'un utilisateur a été autorisé afin de lui permettre d'utiliser son compte. Il lui fournit certaines ressources et certains services, par exemple en montant son répertoire personnel, en rendant sa boîte aux lettres disponible, en lançant un agent ssh, etc.

Syntaxe du fichier de configuration

   Le format de chaque rêgle est une collection de tokens séparés par un espace:

  service type control module-path modeul-arguments

service est typiquement le nom de l'application. Le service 'other' est réservé pour définir les règles par défaut.
type est le gestionnaire auquel la règle correspond ( account, auth, password, session ). Si le type est précédé par un '-', la librairie PAM ne loggera rien s'il n'est pas possible de charger le module s'il n'est pas présent dans le système.
control indique le comportement de PAM-API si le module échoue dans sa tâche d'authentification. Il y'a 2 types de syntaxe: un simple mot clé, et une paire [value=action].

Les valeurs possibles

        required Retourne un échec mais seulement après que les modules stackés restant aient été invoqués.
        requisite identique à required, mais retourne le contrôle. La valeur de retour est associée avec le premier required ou requisite qui a échoué. Ce flag peut être utilisé comme protection contre la possibilité qu'un utilisateur ait l'opportunité d'entrer un mot de passe dans un environnement non sécurisé.
        sufficient Le succès d'un tel module est suffisant pour satisfaire aux requis de la pile de module (si un précédent required a échoué, celui-ci est ignoré). Si le module réussit, retourne le succès immédiatement sans essayer les autres modules.
        optional Le succès ou l'échec n'est pas important si c'est le seul module dans la pile.
        include inclue toutes les lignes d'un type donné depuis un fichier de configuration spécifié en argument.
        substack Identique à include mais diffère dans les actions done et die dans une sous pile qui n'ignorent pas le reste de la pile, mais seulement sur la sous pile.
        [value=action1 value2=action2 ...]valueN correspond au code de retour de la fonction invoquée dans le module. peut être:success, open_err, symbol_err, service_err, system_err, buf_err, perm_denied, auth_err, cred_insufficient, authinfo_unavail, user_unknown, maxtries, new_authtok_reqd, acct_expired, session_err, cred_unavail, cred_expired, cred_err, no_module_data, conv_err, authtok_err, authtok_recover_err, authtok_lock_busy, authtok_disable_aging, try_again, ignore, abort, authtok_expired, module_unknown, bad_item, conv_again, incomplete, et default.

                default implique toutes les valueN non mentionnées explicitement.
                actionN prend une des valeurs suivante:
                ignore Le status de retour ne contribut pas à retourner un code que l'application obtient.
                bad le code de retour indique que le module a échoué. Si c'est le premier module de la pile à échouer, ce status est utilisé pour toute la pile.
                die Idem à bad mais la pile de termine immédiatement.
                ok Ce code devrait contribuer directement au code de retour de toute la pile.
                done Idem à ok mais termine immédiatement la pile
                N (entier non signé) Idem à ok mais saute immédiatement au N-ème module suivant dans la pile
                reset Efface toute trace de l'état du module et commence avec le module suivant.

        required [success=ok new_authtok_reqd=ok ignore=ignore default=bad]
        requisite [success=ok new_authtok_reqd=ok ignore=ignore default=die]
        sufficient [success=done new_authtok_reqd=done default=ignore]
        optional [success=done new_authtok_reqd=ok default=ignore]

module-path est soit le nom de fichier utilisé par l'application (comence par un '/'), soit un chemin relatif à l'emplacement des modules: /lib/security ou /lib64/security/
module-arguments est une liste de tokens séparés par un espace ou entre [] si des arguments contiennent des espaces, qui peut être utilisé pour modifier le fonctionnement d'un PAM.

Exemple de configuration

Un système considéré sécurisé a une entrée other raisonnablement sécurisé:
other auth required pam_deny.so
other account required pam_deny.so
other password required pam_deny.so
other session required pam_deny.so
l'exemple suivant fournit des alertes utiles pour les administrateurs:
other auth required pam_warn.so
other password required pam_warn.so
exemple classique sur les machines moins sensible dans /etc/pam.d/other:
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
Il est conseillé d'avoir une entrée other sécurisée:
auth required pam_deny.so
auth required pam_warn.so
account required pam_deny.so
account required pam_warn.so
password required pam_deny.so
password required pam_warn.so
session required pam_deny.so
session required pam_warn.so