diff options
author | Thorsten Kukuk <kukuk@thkukuk.de> | 2006-01-23 12:36:32 +0000 |
---|---|---|
committer | Thorsten Kukuk <kukuk@thkukuk.de> | 2006-01-23 12:36:32 +0000 |
commit | 9ed169585185307e13dec9c20c944de191bb6df6 (patch) | |
tree | 0c6424c2315964bfabd0ddff5ce9af1df666b3e3 /modules | |
parent | a5c4da8d631c538490c1920689d590c19a60f1d6 (diff) | |
download | pam-9ed169585185307e13dec9c20c944de191bb6df6.tar.gz pam-9ed169585185307e13dec9c20c944de191bb6df6.tar.bz2 pam-9ed169585185307e13dec9c20c944de191bb6df6.zip |
Relevant BUGIDs: none
Purpose of commit: new feature
Commit summary:
---------------
2006-01-21 Thorsten Kukuk <kukuk@thkukuk.de>
* modules/pam_listfile/pam_listfile.c: Add support for session
and password management.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/pam_listfile/pam_listfile.c | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/modules/pam_listfile/pam_listfile.c b/modules/pam_listfile/pam_listfile.c index c19cfc1a..69384be6 100644 --- a/modules/pam_listfile/pam_listfile.c +++ b/modules/pam_listfile/pam_listfile.c @@ -1,9 +1,4 @@ /* - * $Id$ - * - */ - -/* * by Elliot Lee <sopwith@redhat.com>, Red Hat Software. July 25, 1996. * log refused access error christopher mccrory <chrismcc@netus.com> 1998/7/11 * @@ -36,14 +31,14 @@ #define PAM_SM_AUTH #define PAM_SM_ACCOUNT +#define PAM_SM_PASSWORD +#define PAM_SM_SESSION #include <security/pam_modules.h> #include <security/_pam_macros.h> #include <security/pam_modutil.h> #include <security/pam_ext.h> -/* some syslogging */ - /* checks if a user is on a list of members */ static int is_on_list(char * const *list, const char *member) { @@ -222,7 +217,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, /* Not a member of apply= group */ #ifdef DEBUG pam_syslog(pamh,LOG_DEBUG, - + "don't apply: %s not a member of group %s", user_name,apply_val); #endif /* DEBUG */ @@ -301,7 +296,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, break; default: pam_syslog(pamh,LOG_ERR, - + "Internal weirdness, unknown extended item %d", extitem); free(ifname); @@ -310,7 +305,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, } #ifdef DEBUG pam_syslog(pamh,LOG_INFO, - + "Got file = %s, item = %d, value = %s, sense = %d", ifname, citem, citemp, sense); #endif @@ -384,7 +379,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, free(ifname); if ((sense && retval) || (!sense && !retval)) { #ifdef DEBUG - pam_syslog(pamh,LOG_INFO, + pam_syslog(pamh,LOG_INFO, "Returning PAM_SUCCESS, retval = %d", retval); #endif return PAM_SUCCESS; @@ -412,10 +407,31 @@ pam_sm_setcred (pam_handle_t *pamh UNUSED, int flags UNUSED, } PAM_EXTERN int -pam_sm_acct_mgmt (pam_handle_t *pamh, int flags UNUSED, +pam_sm_acct_mgmt (pam_handle_t *pamh, int flags, + int argc, const char **argv) +{ + return pam_sm_authenticate(pamh, flags, argc, argv); +} + +PAM_EXTERN int +pam_sm_open_session (pam_handle_t *pamh, int flags, + int argc, const char **argv) +{ + return pam_sm_authenticate(pamh, flags, argc, argv); +} + +PAM_EXTERN int +pam_sm_close_session (pam_handle_t *pamh, int flags, + int argc, const char **argv) +{ + return pam_sm_authenticate(pamh, flags, argc, argv); +} + +PAM_EXTERN int +pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv) { - return pam_sm_authenticate(pamh, 0, argc, argv); + return pam_sm_authenticate(pamh, flags, argc, argv); } #ifdef PAM_STATIC @@ -427,9 +443,9 @@ struct pam_module _pam_listfile_modstruct = { pam_sm_authenticate, pam_sm_setcred, pam_sm_acct_mgmt, - NULL, - NULL, - NULL, + pam_sm_open_session, + pam_sm_close_session, + pam_sm_chauthtok, }; #endif /* PAM_STATIC */ |