Oui, il est logique de pouvoir sauter un nombre arbitraire de lignes. Il n'y a pas de "parenthèses de regroupement" ou quoi que ce soit de ce genre, mais si vous combinez la logique que vous venez de mentionner avec la possibilité de sauter des lignes, vous pouvez exclure des comportements de manière sélective.
Voici un exemple tiré de mon serveur personnel :
# Skip Google authenticator check if they're coming from a local IP.
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access/nogoogle.conf noaudit
auth required pam_google_authenticator.so nullok
Je n'ai pas vraiment besoin d'une authentification à deux facteurs si l'adresse IP source provient de mon réseau local. pam_access.so
pour sauter exactement une ligne en cas de succès. Si la vérification échoue, rien ne se passe et la ligne suivante est vérifiée.
Vous trouverez plus d'informations à ce sujet dans le pam.conf
page de manuel. Recherchez "value1". La section commence ainsi :
For the more complicated syntax valid control values have the following form:
[value1=action1 value2=action2 ...]
Where valueN corresponds to the return code from the function invoked in the
module for which the line is defined.
...
Gardez à l'esprit que cette logique est beaucoup plus complexe, et que si des personnes modifient vos configurations PAM sans remarquer la présence du saut de ligne, elles peuvent provoquer toutes sortes de chaos en ajoutant ou en supprimant des lignes au mauvais endroit.