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