pam_putenv — set or change PAM environment variable


#include <security/pam_appl.h>

int pam_putenv(pam_handle_t *pamh, const char *name_value);


The pam_putenv function is used to add or change the value of PAM environment variables as associated with the pamh handle.

The pamh argument is an authentication handle obtained by a prior call to pam_start(). The name_value argument is a single NUL terminated string of one of the following forms:

NAME=value of variable

In this case the environment variable of the given NAME is set to the indicated value: value of variable. If this variable is already known, it is overwritten. Otherwise it is added to the PAM environment.


This function sets the variable to an empty value. It is listed separately to indicate that this is the correct way to achieve such a setting.


Without an '=' the pam_putenv() function will delete the corresponding variable from the PAM environment.

pam_putenv() operates on a copy of name_value, which means in contrast to putenv(3), the application is responsible to free the data.

Return Values


Argument name_value given is a NULL pointer.


Variable requested (for deletion) is not currently set.


The pamh handle is corrupt.


Memory buffer error.


The environment variable was successfully updated.

See Also

pam_start(3), pam_getenv(3), pam_getenvlist(3), pam_strerror(3), pam(8)

Referenced By

pam(3), pam_getenv(3), pam_getenvlist(3), pam_misc_paste_env(3), pam_misc_setenv(3).

05/18/2017 Linux-PAM Manual