pam_get_user(3PAM) PAM Library Functions pam_get_user(3PAM)
NAME
pam_get_user - PAM routine to retrieve user name
SYNOPSIS
cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>
int pam_get_user(pam_handle_t *pamh, char **user,
const char *prompt);
DESCRIPTION
The pam_get_user() function is used by PAM service modules to retrieve the current user name from the PAM handle. If the user name has
not been set with pam_start() or pam_set_item(), the PAM conversation function will be used to prompt the user for the user name with the
string "prompt". If prompt is NULL, then pam_get_item() is called and the value of PAM_USER_PROMPT is used for prompting. If the value of
PAM_USER_PROMPT is NULL, the following default prompt is used:
Please enter user name:
After the user name is gathered by the conversation function, pam_set_item() is called to set the value of PAM_USER. By convention, appli-
cations that need to prompt for a user name should call pam_set_item() and set the value of PAM_USER_PROMPT before calling pam_authenti-
cate(). The service module's pam_sm_authenticate() function will then call pam_get_user() to prompt for the user name.
Note that certain PAM service modules, such as a smart card module, may override the value of PAM_USER_PROMPT and pass in their own
prompt. Applications that call pam_authenticate() multiple times should set the value of PAM_USER to NULL with pam_set_item() before
calling pam_authenticate(), if they want the user to be prompted for a new user name each time. The value of user retrieved by
pam_get_user() should not be modified or freed. The item will be released by pam_end().
RETURN VALUES
Upon success, pam_get_user() returns PAM_SUCCESS; otherwise it returns an error code. Refer to pam(3PAM) for information on error related
return values.
ATTRIBUTES
See attributes(5) for description of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability | Stable |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe with exceptions |
+-----------------------------+-----------------------------+
SEE ALSO
pam(3PAM), pam_authenticate(3PAM), pam_end(3PAM), pam_get_item(3PAM), pam_set_item(3PAM), pam_sm(3PAM), pam_sm_authenticate(3PAM),
pam_start(3PAM), attributes(5)
NOTES
The interfaces in libpam are MT-Safe only if each thread within the multithreaded application uses its own PAM handle.
SunOS 5.11 13 Oct 1998 pam_get_user(3PAM)