pam_start 3 Linux-PAM Manual pam_start initialization of PAM transaction #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 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 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 /etc/pam.conf. 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 undefined. 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_item3 and pam_get_item3 . 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 PAM_ABORT General failure. PAM_BUF_ERR Memory buffer error. PAM_SUCCESS Transaction was successful created. PAM_SYSTEM_ERR System error, for example a NULL pointer was submitted instead of a pointer to data. SEE ALSO pam_get_data3 , pam_set_data3 , pam_end3 , pam_strerror3