PAM_SETCRED(3)

  .SH "NAME" pam_setcred - establish / delete user credentials

  .SH "SYNOPSIS"

#include <security/pam_appl.h>

      .HP u int pam_setcred(pam_handle_t *pamh, int flags);

  .SH "DESCRIPTION"

    .PP 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)).
     .PP 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.
      .PP Valid flags, any one of which, may be logically OR'd with PAM_SILENT, are:

        .PP PAM_ESTABLISH_CRED

                Initialize the credentials for the user.

              .RE
            .PP PAM_DELETE_CRED

                    Delete the user's credentials.

                .RE
                .PP PAM_REINITIALIZE_CRED

                        Fully reinitialize the user's credentials.

                    .RE
                    .PP PAM_REFRESH_CRED

                            Extend the lifetime of the existing credentials.

                        .RE

                   .SH "RETURN VALUES"

                      .PP PAM_BUF_ERR

                               Memory buffer error.

                          .RE
                          .PP PAM_CRED_ERR

                                   Failed to set user credentials.

                              .RE
                              .PP PAM_CRED_EXPIRED

                                       User credentials are expired.

                                  .RE
                                  .PP PAM_CRED_UNAVAIL

                                           Failed to retrieve user credentials.

                                      .RE
                                      .PP PAM_SUCCESS

                                               Data was successful stored.

                                          .RE
                                          .PP PAM_SYSTEM_ERR

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

                                              .RE
                                              .PP PAM_USER_UNKNOWN

                                                       User is not known to an authentication module.

                                                  .RE

                                              .SH "SEE ALSO"

                                                .PP pam_authenticate(3), pam_open_session(3), pam_close_session(3), pam_strerror(3)