Developing PAM modules?

Jason Gerfen jason.gerfen at scl.utah.edu
Wed Jun 2 16:06:02 UTC 2004


I have been trying to get a working PAM module written.  It doesn't do 
anything real fancy just creates a file so I know that I am working with 
the functions correctly, as of yet I have not been able to get it to do 
anything.

[SNIP]
#include <stdio.h>

#define PAM_SM_AUTH
#define PAM_SM_ACCOUNT
#define PAM_SM_SESSION
#define PAM_SM_PASSWORD

#include <pam_modules.h>

PAM_EXTERN
int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
                                                const char **argv)
{
   const char *user;
   const char prompt;

   pam_get_user(pamh, &user, &prompt);

   FILE *fp;
   int i;

   fp = fopen("/tmp/log", "a");

   fprintf(fp, "\nSample code\n\n");
   for(i = 1; i <= 10; i++)
    fprintf(fp, "i = %d\n", i);
   fclose(fp);

   return PAM_IGNORE;
}

PAM_EXTERN
int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc,
           const char **argv)
{
   return PAM_IGNORE;
}

PAM_EXTERN
int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc,
             const char **argv)
{
   return PAM_IGNORE;
}

PAM_EXTERN
int pam_sm_cauthtok(pam_handle_t *pamh, int flags, int argc,
            const char **argv)
{
   return PAM_IGNORE;
}

PAM_EXTERN
int pam_sm_open_session(pam_handle_t *pamh, int flags, int argc,
            const char **argv)
{
   return PAM_IGNORE;
}

PAM_EXTERN
int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc,
             const char **argv)
{
   return PAM_IGNORE;
}

#ifdef PAM_STATIC

struct pam_module _pam_permit_modstruct = {
   "pam_permit",
   pam_sm_authenticate,
   pam_sm_setcred,
   pam_sm_acct_mgmt,
   pam_sm_open_session,
   pam_sm_close_session,
   pam_sm_chauthtok
};

#endif
[/SNIP]

Am I missing something?  The PAM module writters guide is kinda vague on 
details, and I have only been able to google up a couple of tutorials on 
this subject so any help, pointers, howto's are definately appreciated.

-- 
Jason Gerfen

"...Sometimes I just yell at myself. And it
 makes me sad, sometimes I make myself cry..."
			~ My nephew Dawsyn






More information about the Pam-list mailing list