PAM_SETCRED(3PAM) PAM Library Functions PAM_SETCRED(3PAM)

NAME


pam_setcred - modify or delete user credentials for an authentication
service

SYNOPSIS


cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>


int pam_setcred(pam_handle_t *pamh, int flags);


DESCRIPTION


The pam_setcred() function is used to establish, modify, or delete user
credentials. It is typically called after the user has been authenticated
and after a session has been validated. See pam_authenticate(3PAM) and
pam_acct_mgmt(3PAM).


The user is specified by a prior call to pam_start() or pam_set_item(),
and is referenced by the authentication handle, pamh. The following flags
may be set in the flags field. Note that the first four flags are
mutually exclusive:

PAM_ESTABLISH_CRED
Set user credentials for an authentication
service.


PAM_DELETE_CRED
Delete user credentials associated with an
authentication service.


PAM_REINITIALIZE_CRED
Reinitialize user credentials.


PAM_REFRESH_CRED
Extend lifetime of user credentials.


PAM_SILENT
Authentication service should not generate any
messages.


If no flag is set, PAM_ESTABLISH_CRED is used as the default.

RETURN VALUES


Upon success, pam_setcred() returns PAM_SUCCESS. In addition to the
error return values described in pam(3PAM) the following values may be
returned upon error:

PAM_CRED_UNAVAIL
Underlying authentication service can not retrieve
user credentials unavailable.


PAM_CRED_EXPIRED
User credentials expired.


PAM_USER_UNKNOWN
User unknown to underlying authentication service.


PAM_CRED_ERR
Failure setting user credentials.


ATTRIBUTES


See attributes(7) for description of the following attributes:


+--------------------+-------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------------+
|Interface Stability | Committed |
+--------------------+-------------------------+
|MT-Level | MT-Safe with exceptions |
+--------------------+-------------------------+

SEE ALSO


libpam(3LIB), pam(3PAM), pam_acct_mgmt(3PAM), pam_authenticate(3PAM),
pam_set_item(3PAM), pam_start(3PAM), attributes(7)

NOTES


The interfaces in libpam are MT-Safe only if each thread within the
multithreaded application uses its own PAM handle.

January 10, 2008 PAM_SETCRED(3PAM)