Developing PAM modules?

Jason Gerfen jason.gerfen at scl.utah.edu
Wed Jun 2 17:40:31 UTC 2004


Modified to PAM_SUCCESS for the pam_sm_authenticate() function.  Given 
the code below I am simply opening a file, inputting some information 
and closing it as a person logs in.  I am new to pam modules so I 
figured do something easy to get started and as of yet I have not been 
able to get it to do anything.

Boris Breslav wrote:

>what exactly you want it to do?
>you return PAM_IGNORE in every function
>
>----- Original Message ----- 
>From: "Jason Gerfen" <jason.gerfen at scl.utah.edu>
>To: "Pluggable Authentication Modules" <pam-list at redhat.com>
>Sent: Wednesday, June 02, 2004 6:06 PM
>Subject: Developing PAM modules?
>
>
>  
>
>>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
>>
>>
>>
>>_______________________________________________
>>Pam-list mailing list
>>Pam-list at redhat.com
>>https://www.redhat.com/mailman/listinfo/pam-list
>>
>>__________ NOD32 1.779 (20040602) Information __________
>>
>>This message was checked by NOD32 antivirus system.
>>http://www.nod32.com
>>
>>
>>    
>>
>
>
>_______________________________________________
>Pam-list mailing list
>Pam-list at redhat.com
>https://www.redhat.com/mailman/listinfo/pam-list
>  
>


-- 
Jason Gerfen
Student Computing Group
Marriott Library
University of Utah
(801) 585-9810
jason.Gerfen at scl.utah.edu

"...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