Re: Incompatibility between Linux-PAM and other PAM?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 4 Mar 2001, Nicolas Williams wrote:

> On Sun, Mar 04, 2001 at 02:12:58PM -0600, Steve Langasek wrote:
> > On Sun, 4 Mar 2001, Nicolas Williams wrote:

> > Incidentally, does anyone have a guide for cross-platform PAM programming,
> > that covers all the minor incompatibilities one's likely to run into when
> > writing modules/apps?  I think the question has come up on the mailing list
> > before, but I don't remember if anyone has done any compilation work on it
> > yet.

> http://www.dementia.org/~shadow/pam.html

Ah. Bookmarked then, thanks. :)  Yes, I'd seen this page before and just
didn't remember it.  It seems to be somewhat out-of-date
(Last Modified: Thursday, 14-Jan-99 16:26:57 GMT).  Does anyone know if Derick
intends to maintain this page long-term?

> > In general this is a reasonable workaround, but I can easily see cases where
> > calling the conversation function once versus multiple times would make a
> > difference.  Certainly, it will always be (marginally) more efficient to call
> > the conversation function as few times as possible, so all other things being
> > equal it makes sense for pam_krb5 to do as it does now; but there may also be
> > cases where each call to the conversation function is very expensive
> > (cryptographic setup/teardown?), or where a set of messages are interrelated
> > and should therefore be passed together so that the relationship between them
> > is evident.  E.g., what if you have a conversation function that tacks
> > headers/footers onto each message set?  What if your conversation function
> > displays the messages using a web page?  (Not a hypothetical scenario; I have
> > such a conversation function that works quite well with other pam_krb5
> > implementations.:)

> Ah, but do those modules use krb5_get_init_creds_password()? Or do they
> use the krb5_get_in_tkt_with_password() API? The difference is in how to
> do password aging. The former does all the work, the latter merely
> returns an error when the password is expired (unless the target
> principal name is a password-changing service).

No, of course they don't use krb5_get_init_creds_password().  If they did, I
would never have noticed the problem with Frank's module. :D

Actually, I'm going to be making some changes locally to pam_krb5 so that the
changing of expired passwords is moved to the pam_chauthtok() stage where it
belongs according to the spec (which means no longer using
krb5_get_init_creds_password()).  I have a genuine need for module stacking in
the password-changing phase, so having pam_krb5 do this directly in the auth
phase doesn't cut it for me.

> > So there may not be an /absolute/ need to send multiple prompts in one go, but
> > it's certainly unfortunate if we have to give up this functionality in
> > exchange for portability.

> Agreed. For now I'll modify my version of this module to support an
> option to prompt one prompt at a time.

Have you talked to Frank about including your fixes in his next release?
(I've been cc:ing him on this thread because it's relevant to making his
module work under Linux, but I have no idea if he's reading. :)  I agree with
your assessment that Frank's pam_krb5 module is the most
functionally-complete implementation available to date, which is a good reason
to prevent code forking here if possible...

Steve Langasek
postmodern programmer





[Index of Archives]     [Fedora Users]     [Kernel]     [Red Hat Install]     [Linux for the blind]     [Gimp]

  Powered by Linux