problem getting password in a pam module

Fabian Stäber fabian at fstab.de
Tue Nov 21 14:32:38 UTC 2006


Hi,

does your code implement pam_sm_open_session()?
I think the password is only accessable in pam_sm_authenticate().
If you want to use the password later in pam_sm_open_session(),
you need to store it in pam_sm_authenticate() using pam_set_item(),
and retrieve it in pam_sm_open_session() using pam_get_item().

Best regards, Fabian.

> Hi,
> I use the below code to get user and password from pam, but there is a
> problem for password.
> Password is (null) when I call "rc = pam_get_item (pamh, PAM_AUTHTOK,
> (const
> void **) &p);"
> what is the problem with the code?
>
> Regards,
>
>
>  53   D(("get user returned error: %s", pam_strerror(pamh,retval)));
>  55   int rc;
>  56   char *user=NULL;
>  57   char *p=NULL;
>  58   int use_first_pass = 0, try_first_pass = 0;
>  59   int i;
>  60
>  61   for (i = 0; i < argc; i++)
>  62   {
>  63     if (!strcmp (argv[i], "use_first_pass"))
>  64       use_first_pass = 1;
>  65     else if (!strcmp (argv[i], "try_first_pass"))
>  66       try_first_pass = 1;
>  72   }
>  73   rc = pam_get_user(pamh,(const char **) &user, NULL);
>  74   if (rc != PAM_SUCCESS)
>  75   {
>  76     D(("get user returned error: %s", pam_strerror(pamh,rc)));
>  78     return rc;
>  79   }
>
>  82   if (user == NULL || *user == '\0')
>  83   {
>  84     D(("username not known"));
>  85     rc = pam_set_item(pamh, PAM_USER, (const char *) DEFAULT_USER);
>  86     if (rc != PAM_SUCCESS)
>  87       return PAM_USER_UNKNOWN;
>  88   }
>  89   //user = NULL;                                            /* clean
> up
> */
>  90
>  91   rc = pam_get_item (pamh, PAM_AUTHTOK, (const void **) &p);
>  92   syslog (LOG_ERR, "pass: %s", p);
>  93   syslog (LOG_ERR, "user: %s", user);
>  94   return PAM_SUCCESS;
>  95   if (rc == PAM_SUCCESS && (use_first_pass || try_first_pass))
> _______________________________________________
> Pam-list mailing list
> Pam-list at redhat.com
> https://www.redhat.com/mailman/listinfo/pam-list





More information about the Pam-list mailing list