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,
const 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.
July 6, 2024 PAM_GET_USER(3PAM)