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)