In the case of authentication failures due to an incorrect username or password, it is the responsibility of the application to retry pam_authenticate() and to maintain the retry
count. An authentication service module may implement an internal retry count and return an error PAM_MAXTRIES if the module does not want the application to retry.
If the PAM framework cannot load the authentication module, then it will return PAM_ABORT. This indicates a serious failure,
and the application should not attempt to retry the authentication.
For security reasons, the location of authentication failures is hidden from the user. Thus, if several authentication services are stacked and a single service fails, pam_authenticate() requires that the user re-authenticate each of the services.
A null authentication token in the authentication database will result in successful authentication unless PAM_DISALLOW_NULL_AUTHTOK was specified. In such
cases, there will be no prompt to the user to enter an authentication token.
The interfaces in libpam are MT-Safe only if each thread within the multithreaded application uses its own PAM handle.
|