pam_exec
—
Exec PAM module
[service-name] module-type
control-flag pam_exec
[arguments]
The exec service module for PAM executes the program designated by its first
argument if no options are specified, with its remaining arguments as
command-line arguments. If options are specified, the program and its
arguments follow the last option or --
if the program
name conflicts with an option name.
The following options may be passed before the program and its
arguments:
capture_stderr
- Capture text printed by the program to its standard error stream and pass
it to the conversation function as error messages. No attempt is made at
buffering the text, so results may vary.
capture_stdout
- Capture text printed by the program to its standard output stream and pass
it to the conversation function as informational messages. No attempt is
made at buffering the text, so results may vary.
debug
- Ignored for compatibility reasons.
no_warn
- Ignored for compatibility reasons.
return_prog_exit_status
- Use the program exit status as the return code of the pam_sm_* function.
It must be a valid return value for this function.
expose_authtok
- Write the authentication token to the program's standard input stream,
followed by a NUL character. Ignored for
pam_sm_setcred
().
use_first_pass
- If
expose_authtok
was specified, do not prompt for
an authentication token if one is not already available.
--
- Stop options parsing; program and its arguments follow.
The child's environment is set to the current PAM environment
list, as returned by
pam_getenvlist(3).
In addition, the following PAM items are exported as environment variables:
PAM_RHOST
, PAM_RUSER
,
PAM_SERVICE
, PAM_SM_FUNC
,
PAM_TTY
and PAM_USER
.
The PAM_SM_FUNC
variable contains the name
of the PAM service module function being called. It may be:
- pam_sm_acct_mgmt
- pam_sm_authenticate
- pam_sm_chauthtok
- pam_sm_close_session
- pam_sm_open_session
- pam_sm_setcred
If return_prog_exit_status
is not set
(default), the PAM_SM_FUNC
function returns
PAM_SUCCESS
if the program exit status is 0,
PAM_PERM_DENIED
otherwise.
If return_prog_exit_status
is set, the
program exit status is used. It should be
PAM_SUCCESS
or one of the error codes allowed by the
calling PAM_SM_FUNC
function. The valid codes are
documented in each function man page. If the exit status is not a valid
return code, PAM_SERVICE_ERR
is returned. Each valid
codes numerical value is available as an environment variable (eg.
PAM_SUCESS
,
PAM_USER_UNKNOWN
, etc). This is useful in shell
scripts for instance.
The pam_exec
module and this manual page were developed
for the FreeBSD Project by ThinkSec AS and NAI Labs,
the Security Research Division of Network Associates, Inc. under DARPA/SPAWAR
contract N66001-01-C-8035 (“CBOSS”), as part of the DARPA CHATS
research program.