1.\" Copyright (c) 2001,2003 Networks Associates Technology, Inc. 2.\" All rights reserved. 3.\" 4.\" Portions of this software were developed for the FreeBSD Project by 5.\" ThinkSec AS and NAI Labs, the Security Research Division of Network 6.\" Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 7.\" ("CBOSS"), as part of the DARPA CHATS research program. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 3. The name of the author may not be used to endorse or promote 18.\" products derived from this software without specific prior written 19.\" permission. 20.\" 21.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 22.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 25.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31.\" SUCH DAMAGE. 32.\" 33.\" $FreeBSD: head/lib/libpam/modules/pam_exec/pam_exec.8 235873 2012-05-24 02:24:03Z wblock $ 34.\" 35.Dd July 11, 2012 36.Dt PAM_EXEC 8 37.Os 38.Sh NAME 39.Nm pam_exec 40.Nd Exec PAM module 41.Sh SYNOPSIS 42.Op Ar service-name 43.Ar module-type 44.Ar control-flag 45.Pa pam_exec 46.Op Ar arguments 47.Sh DESCRIPTION 48The exec service module for PAM executes the program designated by 49its first argument if no options are specified, with its remaining 50arguments as command-line arguments. 51If options are specified, the program and its arguments follow the last 52option or 53.Cm -- 54if the program name conflicts with an option name. 55.Pp 56The following options may be passed before the program and its 57arguments: 58.Bl -tag -width ".Cm return_prog_exit_status" 59.It Cm return_prog_exit_status 60Use the program exit status as the return code of the pam_sm_* function. 61It must be a valid return value for this function. 62.It Cm -- 63Stop options parsing; 64program and its arguments follow. 65.El 66.Pp 67The child's environment is set to the current PAM environment list, 68as returned by 69.Xr pam_getenvlist 3 . 70In addition, the following PAM items are exported as environment 71variables: 72.Ev PAM_RHOST , 73.Ev PAM_RUSER , 74.Ev PAM_SERVICE , 75.Ev PAM_SM_FUNC , 76.Ev PAM_TTY 77and 78.Ev PAM_USER . 79.Pp 80The 81.Ev PAM_SM_FUNC 82variable contains the name of the PAM service module function being 83called. 84It may be: 85.Bl -dash -offset indent -compact 86.It 87pam_sm_acct_mgmt 88.It 89pam_sm_authenticate 90.It 91pam_sm_chauthtok 92.It 93pam_sm_close_session 94.It 95pam_sm_open_session 96.It 97pam_sm_setcred 98.El 99.Pp 100If 101.Cm return_prog_exit_status 102is not set (default), the 103.Ev PAM_SM_FUNC 104function returns 105.Er PAM_SUCCESS 106if the program exit status is 0, 107.Er PAM_PERM_DENIED 108otherwise. 109.Pp 110If 111.Cm return_prog_exit_status 112is set, the program exit status is used. 113It should be 114.Er PAM_SUCCESS 115or one of the error codes allowed by the calling 116.Ev PAM_SM_FUNC 117function. 118The valid codes are documented in each function man page. 119If the exit status is not a valid return code, 120.Er PAM_SERVICE_ERR 121is returned. 122Each valid codes numerical value is available as an environment variable 123(eg.\& 124.Ev PAM_SUCESS , 125.Ev PAM_USER_UNKNOWN , 126etc). 127This is useful in shell scripts for instance. 128.Sh SEE ALSO 129.Xr pam 3 , 130.Xr pam_get_item 3 , 131.Xr pam_sm_acct_mgmt 3 , 132.Xr pam_sm_authenticate 3 , 133.Xr pam_sm_chauthtok 3 , 134.Xr pam_sm_close_session 3 , 135.Xr pam_sm_open_session 3 , 136.Xr pam_sm_setcred 3 , 137.Xr pam.conf 5 138.Sh AUTHORS 139The 140.Nm 141module and this manual page were developed for the 142.Fx 143Project by 144ThinkSec AS and NAI Labs, the Security Research Division of Network 145Associates, Inc.\& under DARPA/SPAWAR contract N66001-01-C-8035 146.Pq Dq CBOSS , 147as part of the DARPA CHATS research program. 148