4
* $Id: pam_warn.c,v 1.1.1.2 2002/09/15 20:09:04 hartmans Exp $
6
* Written by Andrew Morgan <morgan@linux.kernel.org> 1996/3/11
17
* here, we make a definition for the externally accessible function
18
* in this file (this definition is required for static a module
19
* but strongly encouraged generally) it is used to instruct the
20
* modules include file to define the function prototypes.
24
#define PAM_SM_PASSWORD
26
#include <security/pam_modules.h>
30
#define OBTAIN(item, value, default_value) do { \
31
(void) pam_get_item(pamh, item, (const void **) &value); \
32
value = value ? value : default_value ; \
35
static void _pam_log(int err, const char *format, ...)
39
va_start(args, format);
40
openlog("PAM-warn", LOG_CONS|LOG_PID, LOG_AUTH);
41
vsyslog(err, format, args);
46
static void log_items(pam_handle_t *pamh, const char *function)
48
const char *service=NULL, *user=NULL, *terminal=NULL,
49
*rhost=NULL, *ruser=NULL;
51
OBTAIN(PAM_SERVICE, service, "<unknown>");
52
OBTAIN(PAM_TTY, terminal, "<unknown>");
53
OBTAIN(PAM_USER, user, "<unknown>");
54
OBTAIN(PAM_RUSER, ruser, "<unknown>");
55
OBTAIN(PAM_RHOST, rhost, "<unknown>");
57
_pam_log(LOG_NOTICE, "function=[%s] service=[%s] terminal=[%s] user=[%s]"
58
" ruser=[%s] rhost=[%s]\n",
59
function, service, terminal, user, ruser, rhost);
62
/* --- authentication management functions (only) --- */
65
int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
68
log_items(pamh, __FUNCTION__);
73
int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc, const char **argv)
75
log_items(pamh, __FUNCTION__);
79
/* password updating functions */
82
int pam_sm_chauthtok(pam_handle_t *pamh,int flags,int argc,const char **argv)
84
log_items(pamh, __FUNCTION__);
89
pam_sm_acct_mgmt (pam_handle_t *pamh, int flags, int argc, const char **argv)
91
log_items(pamh, __FUNCTION__);
96
pam_sm_open_session (pam_handle_t *pamh, int flags, int argc,
99
log_items(pamh, __FUNCTION__);
104
pam_sm_close_session (pam_handle_t *pamh, int flags, int argc,
107
log_items(pamh, __FUNCTION__);
113
/* static module data */
115
struct pam_module _pam_warn_modstruct = {
121
pam_sm_close_session,
127
/* end of module definition */