J'étudie le PAM et je suis un peu ignorant de la signification d'une combinaison d'indicateurs de contrôle. D'après la documentation de Red Hat, nous avons:
l'
échec requis d'un tel PAM conduira finalement à l'échec de retour PAM-API, mais seulement après que les modules empilés restants (pour ce service et ce type) ont été appelésrequis
comme requis, cependant, dans le cas où un tel module renvoie une panne, le contrôle est directement renvoyé à l'application.un
succès suffisant d'un tel module suffit pour satisfaire aux exigences d'authentification de la pile de modules (si un module requis antérieur a échoué, le succès de celui-ci est ignoré). Une défaillance de ce module n'est pas considérée comme fatale pour satisfaire l'application que ce type a réussi. Si le module réussit, le framework PAM renvoie immédiatement le succès à l'application sans essayer d'autres modules.
Donc, à ma connaissance, si un module requisite
échoue, la pile entière de modules ne sera pas analysée et le contrôle sera de retour à l'application immédiatement. Si un module sufficient
réussit, le reste de la pile de modules ne sera pas analysé et le contrôle sera immédiatement renvoyé à l'application. Si un module required
échoue, la pile entière sera analysée.
Maintenant, je ne peux pas comprendre quel sera le comportement lorsqu'un certain module required
échoue et qu'un autre module sufficient
réussit.
la source
required
élément a échoué, pourquoi doit-PAM
il continuer à parcourir la pile? si ça va finalement échouer de toute façon?À mon avis, un
required
indicateur de contrôle doit toujours réussir pour qu'un module réussisse.Un
sufficient
module marqué est ignoré s'il échoue. S'il réussit et qu'aucunrequired
module signalé ci-dessus n'a échoué, aucun autre module du même type ne doit être vérifié et le module est considéré comme réussi. Donc, fondamentalement, lerequired
drapeau a une priorité plus élevée que lesufficient
drapeau, mais ce dernier a la capacité d'arrêter de vérifier les autres si les précédentsrequired
ont réussi.Exemple:
Si les lignes 1, 2, 3 et 4 réussissent, la ligne 5 peut être ignorée et le module
auth
réussit. Si la ligne 4 échoue, elle est ignorée et la ligne 5 est vérifiée. Si l'une des lignes 1, 2, 3 est défaillante, la ligne 4 n'est pas prise en compte.la source