pam_start(3) — Linux manual page


PAM_START(3)                Linux-PAM Manual                PAM_START(3)

NAME         top

       pam_start - initialization of PAM transaction

SYNOPSIS         top

       #include <security/pam_appl.h>

       int pam_start(const char *service_name, const char *user,
                     const struct pam_conv *pam_conversation,
                     pam_handle_t **pamh);

DESCRIPTION         top

       The pam_start function creates the PAM context and initiates the
       PAM transaction. It is the first of the PAM functions that needs
       to be called by an application. The transaction state is
       contained entirely within the structure identified by this
       handle, so it is possible to have multiple transactions in
       parallel. But it is not possible to use the same handle for
       different transactions, a new one is needed for every new

       The service_name argument specifies the name of the service to
       apply and will be stored as PAM_SERVICE item in the new context.
       The policy for the service will be read from the file
       /etc/pam.d/service_name or, if that file does not exist, from

       The user argument can specify the name of the target user and
       will be stored as PAM_USER item. If the argument is NULL, the
       module has to ask for this item if necessary.

       The pam_conversation argument points to a struct pam_conv
       describing the conversation function to use. An application must
       provide this for direct communication between a loaded module and
       the application.

       Following a successful return (PAM_SUCCESS) the contents of pamh
       is a handle that contains the PAM context for successive calls to
       the PAM functions. In an error case is the content of pamh

       The pam_handle_t is a blind structure and the application should
       not attempt to probe it directly for information. Instead the PAM
       library provides the functions pam_set_item(3) and
       pam_get_item(3). The PAM handle cannot be used for mulitiple
       authentications at the same time as long as pam_end was not
       called on it before.

RETURN VALUES         top

           General failure.

           Memory buffer error.

           Transaction was successful created.

           System error, for example a NULL pointer was submitted
           instead of a pointer to data.

SEE ALSO         top

       pam_get_data(3), pam_set_data(3), pam_end(3), pam_strerror(3)

COLOPHON         top

       This page is part of the linux-pam (Pluggable Authentication
       Modules for Linux) project.  Information about the project can be
       found at ⟨⟩.  If you have a bug report
       for this manual page, see ⟨//⟩.  This page was
       obtained from the tarball Linux-PAM-1.3.0.tar.bz2 fetched from
       ⟨⟩ on 2021-08-27.  If you
       discover any rendering problems in this HTML version of the page,
       or you believe there is a better or more up-to-date source for
       the page, or you have corrections or improvements to the
       information in this COLOPHON (which is not part of the original
       manual page), send a mail to

Linux-PAM Manual               04/01/2016                   PAM_START(3)

Pages that refer to this page: pam(3)pam_acct_mgmt(3)pam_authenticate(3)pam_chauthtok(3)pam_conv(3)pam_end(3)pam_fail_delay(3)pam_getenv(3)pam_getenvlist(3)pam_get_user(3)pam_putenv(3)pam_xauth_data(3)pam.conf(5)