(root)/
Linux-PAM-1.5.3/
modules/
pam_warn/
pam_warn.c
       1  /*
       2   * pam_warn module
       3   *
       4   * Written by Andrew Morgan <morgan@linux.kernel.org> 1996/3/11
       5   */
       6  
       7  #include "config.h"
       8  
       9  #include <stdio.h>
      10  #include <unistd.h>
      11  #include <syslog.h>
      12  #include <stdarg.h>
      13  
      14  #include <security/pam_modules.h>
      15  #include <security/pam_ext.h>
      16  
      17  /* some syslogging */
      18  
      19  #define OBTAIN(item, value, default_value)  do {                \
      20       (void) pam_get_item(pamh, item, &value);                   \
      21       value = value ? value : default_value ;                    \
      22  } while (0)
      23  
      24  static void log_items(pam_handle_t *pamh, const char *function, int flags)
      25  {
      26       const void *service=NULL, *user=NULL, *terminal=NULL,
      27  	 *rhost=NULL, *ruser=NULL;
      28  
      29       OBTAIN(PAM_SERVICE, service, "<unknown>");
      30       OBTAIN(PAM_TTY, terminal, "<unknown>");
      31       OBTAIN(PAM_USER, user, "<unknown>");
      32       OBTAIN(PAM_RUSER, ruser, "<unknown>");
      33       OBTAIN(PAM_RHOST, rhost, "<unknown>");
      34  
      35       pam_syslog(pamh, LOG_NOTICE,
      36  		"function=[%s] flags=%#x service=[%s] terminal=[%s] user=[%s]"
      37  		" ruser=[%s] rhost=[%s]\n", function, flags,
      38  		(const char *) service, (const char *) terminal,
      39  		(const char *) user, (const char *) ruser,
      40  		(const char *) rhost);
      41  }
      42  
      43  /* --- authentication management functions (only) --- */
      44  
      45  int pam_sm_authenticate(pam_handle_t *pamh, int flags,
      46  			int argc UNUSED, const char **argv UNUSED)
      47  {
      48      log_items(pamh, __FUNCTION__, flags);
      49      return PAM_IGNORE;
      50  }
      51  
      52  int pam_sm_setcred(pam_handle_t *pamh, int flags,
      53  		   int argc UNUSED, const char **argv UNUSED)
      54  {
      55      log_items(pamh, __FUNCTION__, flags);
      56      return PAM_IGNORE;
      57  }
      58  
      59  /* password updating functions */
      60  
      61  int pam_sm_chauthtok(pam_handle_t *pamh, int flags,
      62  		     int argc UNUSED, const char **argv UNUSED)
      63  {
      64      log_items(pamh, __FUNCTION__, flags);
      65      return PAM_IGNORE;
      66  }
      67  
      68  int
      69  pam_sm_acct_mgmt(pam_handle_t *pamh, int flags,
      70  		 int argc UNUSED, const char **argv UNUSED)
      71  {
      72      log_items(pamh, __FUNCTION__, flags);
      73      return PAM_IGNORE;
      74  }
      75  
      76  int
      77  pam_sm_open_session(pam_handle_t *pamh, int flags,
      78  		    int argc UNUSED, const char **argv UNUSED)
      79  {
      80      log_items(pamh, __FUNCTION__, flags);
      81      return PAM_IGNORE;
      82  }
      83  
      84  int
      85  pam_sm_close_session(pam_handle_t *pamh, int flags,
      86  		     int argc UNUSED, const char **argv UNUSED)
      87  {
      88      log_items(pamh, __FUNCTION__, flags);
      89      return PAM_IGNORE;
      90  }
      91  
      92  /* end of module definition */