# info > PAM_SM_AUTHENTICATE

[PAM_SM_AUTHENTICATE(3)](https://www.chedong.com/phpMan.php/man/PAMSMAUTHENTICATE/3/markdown)         Linux-PAM Manual         [PAM_SM_AUTHENTICATE(3)](https://www.chedong.com/phpMan.php/man/PAMSMAUTHENTICATE/3/markdown)

## NAME
       pam_sm_authenticate - PAM service function for user authentication

## SYNOPSIS
       #include <security/pam_modules.h>

       int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
                               const char **argv);

## DESCRIPTION
       The pam_sm_authenticate function is the service module's implementation
       of the [pam_authenticate(3)](https://www.chedong.com/phpMan.php/man/pamauthenticate/3/markdown) interface.

       This function performs the task of authenticating the user.

       Valid flags, which may be logically OR'd with PAM_SILENT, are:

       PAM_SILENT
           Do not emit any messages.

       PAM_DISALLOW_NULL_AUTHTOK
           Return PAM_AUTH_ERR if the database of authentication tokens for
           this authentication mechanism has a NULL entry for the user.
           Without this flag, such a NULL token will lead to a success without
           the user being prompted.

## RETURN VALUES
       PAM_AUTH_ERR
           Authentication failure.

       PAM_CRED_INSUFFICIENT
           For some reason the application does not have sufficient
           credentials to authenticate the user.

       PAM_AUTHINFO_UNAVAIL
           The modules were not able to access the authentication information.
           This might be due to a network or hardware failure etc.

       PAM_SUCCESS
           The authentication token was successfully updated.

       PAM_USER_UNKNOWN
           The supplied username is not known to the authentication service.

       PAM_MAXTRIES
           One or more of the authentication modules has reached its limit of
           tries authenticating the user. Do not try again.

## SEE ALSO
       [pam(3)](https://www.chedong.com/phpMan.php/man/pam/3/markdown), [pam_authenticate(3)](https://www.chedong.com/phpMan.php/man/pamauthenticate/3/markdown), [pam_sm_setcred(3)](https://www.chedong.com/phpMan.php/man/pamsmsetcred/3/markdown), [pam_strerror(3)](https://www.chedong.com/phpMan.php/man/pamstrerror/3/markdown), [PAM(8)](https://www.chedong.com/phpMan.php/man/PAM/8/markdown)

Linux-PAM Manual                  06/08/2020            [PAM_SM_AUTHENTICATE(3)](https://www.chedong.com/phpMan.php/man/PAMSMAUTHENTICATE/3/markdown)
