pam_setcred(3)

pam_setcred3

Establish / delete user credentials

Usage

#include <security/pam_appl.h>

int pam_setcred(pam_handle_t *pamh, int flags);

Overview

The pam_setcred function is used to establish, maintain and delete the credentials of a user. It should be called to set the credentials after a user has been authenticated and before a session is opened for the user (with pam_open_session(3)). The credentials should be deleted after the session has been closed (with pam_close_session(3)).

A credential is something that the user possesses. It is some property, such as a Kerberos ticket, or a supplementary group membership that make up the uniqueness of a given user. On a Linux system the user's UID and GID's are credentials too. However, it has been decided that these properties (along with the default supplementary groups of which the user is a member) are credentials that should be set directly by the application and not by PAM. Such credentials should be established, by the application, prior to a call to this function. For example, initgroups(2) (or equivalent) should have been performed.

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

PAM_ESTABLISH_CRED

Initialize the credentials for the user.

PAM_DELETE_CRED

Delete the user's credentials.

PAM_REINITIALIZE_CRED

Fully reinitialize the user's credentials.

PAM_REFRESH_CRED

Extend the lifetime of the existing credentials.

Return values

PAM_BUF_ERR

Memory buffer error.

PAM_CRED_ERR

Failed to set user credentials.

PAM_CRED_EXPIRED

User credentials are expired.

PAM_CRED_UNAVAIL

Failed to retrieve user credentials.

PAM_SUCCESS

Data was successfully stored.

PAM_SYSTEM_ERR

A NULL pointer was submitted as PAM handle, the function was called by a module or another system error occurred.

PAM_USER_UNKNOWN

User is not known to an authentication module.

Releases

17 releases since Debian 1.3 (Bo); the text changed 14 times.

  1. 1.3–2.0
  2. 2.1
  3. 2.2
  4. 3.0
  5. 3.1
  6. 4.0
  7. 5.0
  8. 6.0
  9. 7
  10. 8–9
  11. 10
  12. 11
  13. 12
  14. 13
  15. Arch

From pam 1.7.3-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.