On Wed, 2 Jun 2004, Jason Gerfen wrote: |> 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. I'm going to assume that you mean that you haven't been able to write to /tmp/log. What is fopen() returning? See below... |> [SNIP] |> #include <stdio.h> #include <errno.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; |> FILE *fp; |> int i; |> |> pam_get_user(pamh, &user, &prompt); |> if ( (fp = fopen("/tmp/log", "a")) == NULL) { # appropriate syslog logging and error return here } |> fprintf(fp, "\nSample code\n\n"); |> for(i = 1; i <= 10; i++) |> fprintf(fp, "i = %d\n", i); if (fp != NULL) { if (fclose(fp) == EOF) { # appropriate syslog logging and error return here } } |> return PAM_IGNORE; |> } [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. It's true, there should be more information about valid return values, for example. HTH, Michael -- /* BEGIN SIG * * "Afraid of change, afraid of staying the same, * when temptation calls, we just look away." * - Barenaked Ladies * *----------------------------- * Michael Chang * miranda [at] uranus dot com * AIM: Solempathe * http://www.syndetic.org/ */ _______________________________________________ Pam-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/pam-list