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,
applications that need to prompt for a user name should call
pam_set_item() and set the value of
PAM_USER_PROMPT before calling
pam_authenticate(). 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(7) 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(7)NOTES
The interfaces in
libpam are MT-Safe only if each thread within the
multithreaded application uses its own
PAM handle.
October 13, 1998
PAM_GET_USER(3PAM)