PAM_PUTENV(3PAM) PAM Library Functions PAM_PUTENV(3PAM)
NAME
pam_putenv - change or add a value to the PAM environment
SYNOPSIS
cc [
flag ... ]
file ...
-lpam [
library ... ]
#include <security/pam_appl.h>
int pam_putenv(
pam_handle_t *pamh,
const char *name_value);
DESCRIPTION
The
pam_putenv() function sets the value of the
PAM environment
variable
name equal to
value either by altering an existing
PAM variable or by creating a new one.
The
name_value argument points to a string of the form
name=value. A
call to
pam_putenv() does not immediately change the environment. All
name_value pairs are stored in the
PAM handle
pamh. An application
such as
login(1) may make a call to
pam_getenv(3PAM) or
pam_getenvlist(3PAM) to retrieve the
PAM environment variables saved
in the
PAM handle and set them in the environment if appropriate.
login will not set
PAM environment values which overwrite the values
for
SHELL,
HOME,
LOGNAME,
MAIL,
CDPATH,
IFS, and
PATH. Nor will
login set
PAM environment values which overwrite any value that
begins with
LD_.
If
name_value equals
NAME=, then the value associated with
NAME in
the
PAM handle will be set to an empty value. If
name_value equals
NAME, then the environment variable
NAME will be removed from the
PAM handle.
RETURN VALUES
The
pam_putenv() function may return one of the following values:
PAM_SUCCESS The function returned successfully.
PAM_OPEN_ERR dlopen() failed when dynamically loading a service
module.
PAM_SYMBOL_ERR Symbol not found.
PAM_SERVICE_ERR Error in service module.
PAM_SYSTEM_ERR System error.
PAM_BUF_ERR Memory buffer error.
PAM_CONV_ERR Conversation failure.
PAM_PERM_DENIED Permission denied.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------------+
|Interface Stability | Stable |
+--------------------+-------------------------+
|MT-Level | MT-Safe with exceptions |
+--------------------+-------------------------+
SEE ALSO
dlopen(3C),
libpam(3LIB),
pam(3PAM),
pam_getenv(3PAM),
pam_getenvlist(3PAM),
attributes(7)NOTES
The interfaces in
libpam are MT-Safe only if each thread within the
multithreaded application uses its own
PAM handle.
March 1, 2004 PAM_PUTENV(3PAM)