# phpman > man > pam_sm_authenticate(3)

[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/authenticate/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/authenticate/3/markdown), **pam**___**sm**___**[setcred**(3)](https://www.chedong.com/phpMan.php/man/setcred/3/markdown), **pam**___**[strerror**(3)](https://www.chedong.com/phpMan.php/man/strerror/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)
