48.4.3.2. Control Flag
All PAM modules generate a success or failure result when called. Control flags tell PAM what do with the result. Modules can be stacked in a particular order, and the control flags determine how important the success or failure of a particular module is to the overall goal of authenticating the user to the service.
There are four predefined control flags:
required
— The module result must be successful for authentication to continue. If the test fails at this point, the user is not notified until the results of all module tests that reference that interface are complete.requisite
— The module result must be successful for authentication to continue. However, if a test fails at this point, the user is notified immediately with a message reflecting the first failedrequired
orrequisite
module test.sufficient
— The module result is ignored if it fails. However, if the result of a module flaggedsufficient
is successful and no previous modules flaggedrequired
have failed, then no other results are required and the user is authenticated to the service.optional
— The module result is ignored. A module flagged asoptional
only becomes necessary for successful authentication when no other modules reference the interface.
Important
The order in which
required
modules are called is not critical. Only the sufficient
and requisite
control flags cause order to become important.
A newer control flag syntax that allows for more precise control is now available for PAM.
The
pam.d
man page, and the PAM documentation, located in the /usr/share/doc/pam-<version-number>/
directory, where <version-number> is the version number for PAM on your system, describe this newer syntax in detail.