Thread: PAM documentation

PAM documentation

From
Bruce Momjian
Date:
Tom Lane wrote:
> momjian@svr1.postgresql.org (Bruce Momjian) writes:
> > Mention that PAM requires the user already exist in the database, per
> > Dick Davies.
>
> I don't recall exactly what Dick suggested, but the patch as applied
> seems like fairly useless verbiage.  Exactly which of our other auth
> methods allow users who *don't* exist in the database to log in?
> And why would anyone find it surprising that this does not happen?

Can someone comment if having to create the database user account to use
PAM is something that people forget?  Is there increased confusion
because PAM is usually used for the operating system usernames?

Attached is the addition I made to the docs recently.  Is it useful?

Here is the email that prompted the addition:

    http://archives.postgresql.org/pgsql-admin/2005-03/msg00189.php

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: client-auth.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v
retrieving revision 1.76
retrieving revision 1.77
diff -c -c -r1.76 -r1.77
*** client-auth.sgml    22 Apr 2005 04:18:58 -0000    1.76
--- client-auth.sgml    26 Apr 2005 03:01:09 -0000    1.77
***************
*** 883,890 ****
      default PAM service name is <literal>postgresql</literal>. You can
      optionally supply your own service name after the <literal>pam</>
      key word in the file <filename>pg_hba.conf</filename>.
!     For more information about PAM, please read the
!     <ulink url="http://www.kernel.org/pub/linux/libs/pam/">
      <productname>Linux-PAM</> Page</ulink>
      and the <ulink url="http://www.sun.com/software/solaris/pam/">
      <systemitem class="osname">Solaris</> PAM Page</ulink>.
--- 883,892 ----
      default PAM service name is <literal>postgresql</literal>. You can
      optionally supply your own service name after the <literal>pam</>
      key word in the file <filename>pg_hba.conf</filename>.
!     PAM is used only to validate username/password pairs.
!     The user must already exist in the database before PAM
!     can be used for authentication.  For more information about
!     PAM, please read the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">
      <productname>Linux-PAM</> Page</ulink>
      and the <ulink url="http://www.sun.com/software/solaris/pam/">
      <systemitem class="osname">Solaris</> PAM Page</ulink>.

Re: PAM documentation

From
Bruce Momjian
Date:
I found more information at:

    http://itc.musc.edu/wiki/PostgreSQL

The issue is mentioned as:

    The first thing you will need to do is create your accounts. Due to the
    way postgres is coded, you will have to create accounts on the actual
    database system with usernames that match the ones in your LDAP
    repository. This is done with the createuser statement.

The issue is that having the user known by PAM (in this case, LDAP),
isn't enough to use PAM.  You also have to have the person created in
PostgreSQL.

---------------------------------------------------------------------------

Bruce Momjian wrote:
> Tom Lane wrote:
> > momjian@svr1.postgresql.org (Bruce Momjian) writes:
> > > Mention that PAM requires the user already exist in the database, per
> > > Dick Davies.
> >
> > I don't recall exactly what Dick suggested, but the patch as applied
> > seems like fairly useless verbiage.  Exactly which of our other auth
> > methods allow users who *don't* exist in the database to log in?
> > And why would anyone find it surprising that this does not happen?
>
> Can someone comment if having to create the database user account to use
> PAM is something that people forget?  Is there increased confusion
> because PAM is usually used for the operating system usernames?
>
> Attached is the addition I made to the docs recently.  Is it useful?
>
> Here is the email that prompted the addition:
>
>     http://archives.postgresql.org/pgsql-admin/2005-03/msg00189.php
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 359-1001
>   +  If your life is a hard drive,     |  13 Roberts Road
>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

> Index: client-auth.sgml
> ===================================================================
> RCS file: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v
> retrieving revision 1.76
> retrieving revision 1.77
> diff -c -c -r1.76 -r1.77
> *** client-auth.sgml    22 Apr 2005 04:18:58 -0000    1.76
> --- client-auth.sgml    26 Apr 2005 03:01:09 -0000    1.77
> ***************
> *** 883,890 ****
>       default PAM service name is <literal>postgresql</literal>. You can
>       optionally supply your own service name after the <literal>pam</>
>       key word in the file <filename>pg_hba.conf</filename>.
> !     For more information about PAM, please read the
> !     <ulink url="http://www.kernel.org/pub/linux/libs/pam/">
>       <productname>Linux-PAM</> Page</ulink>
>       and the <ulink url="http://www.sun.com/software/solaris/pam/">
>       <systemitem class="osname">Solaris</> PAM Page</ulink>.
> --- 883,892 ----
>       default PAM service name is <literal>postgresql</literal>. You can
>       optionally supply your own service name after the <literal>pam</>
>       key word in the file <filename>pg_hba.conf</filename>.
> !     PAM is used only to validate username/password pairs.
> !     The user must already exist in the database before PAM
> !     can be used for authentication.  For more information about
> !     PAM, please read the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">
>       <productname>Linux-PAM</> Page</ulink>
>       and the <ulink url="http://www.sun.com/software/solaris/pam/">
>       <systemitem class="osname">Solaris</> PAM Page</ulink>.

>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index scan if your
>       joining column's datatypes do not match

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: PAM documentation

From
"Joshua D. Drake"
Date:
Bruce Momjian wrote:
> Tom Lane wrote:
>
>>momjian@svr1.postgresql.org (Bruce Momjian) writes:
>>
>>>Mention that PAM requires the user already exist in the database, per
>>>Dick Davies.
>>
>>I don't recall exactly what Dick suggested, but the patch as applied
>>seems like fairly useless verbiage.  Exactly which of our other auth
>>methods allow users who *don't* exist in the database to log in?
>>And why would anyone find it surprising that this does not happen?

Never assume, always be explicit.

Sincerely,

Joshua D. Drake
Command Prompt, Inc.

--
Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240
PostgreSQL Replication, Consulting, Custom Programming, 24x7 support
Managed Services, Shared and Dedication Hosting
Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/

Re: PAM documentation

From
Alvaro Herrera
Date:
On Wed, Apr 27, 2005 at 12:03:54PM -0400, Bruce Momjian wrote:
> Tom Lane wrote:
> > momjian@svr1.postgresql.org (Bruce Momjian) writes:
> > > Mention that PAM requires the user already exist in the database, per
> > > Dick Davies.
> >
> > I don't recall exactly what Dick suggested, but the patch as applied
> > seems like fairly useless verbiage.  Exactly which of our other auth
> > methods allow users who *don't* exist in the database to log in?
> > And why would anyone find it surprising that this does not happen?
>
> Can someone comment if having to create the database user account to use
> PAM is something that people forget?  Is there increased confusion
> because PAM is usually used for the operating system usernames?
>
> Attached is the addition I made to the docs recently.  Is it useful?

Yes, because PAM works different on other systems, specially if it's
configured to use LDAP or some such.  Though I'd rephrase with something
like

>       default PAM service name is <literal>postgresql</literal>. You can
>       optionally supply your own service name after the <literal>pam</>
>       key word in the file <filename>pg_hba.conf</filename>.
> !     Note that PAM is only used to validate username/password pairs;
> !     therefore, the user must already exist in the database before PAM
> !     can be used for authentication.  For more information about
> !     PAM, please read the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">


--
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Porque francamente, si para saber manejarse a uno mismo hubiera que
rendir examen... ¿Quién es el machito que tendría carnet?"  (Mafalda)

Re: PAM documentation

From
Bruce Momjian
Date:
Alvaro Herrera wrote:
> On Wed, Apr 27, 2005 at 12:03:54PM -0400, Bruce Momjian wrote:
> > Tom Lane wrote:
> > > momjian@svr1.postgresql.org (Bruce Momjian) writes:
> > > > Mention that PAM requires the user already exist in the database, per
> > > > Dick Davies.
> > >
> > > I don't recall exactly what Dick suggested, but the patch as applied
> > > seems like fairly useless verbiage.  Exactly which of our other auth
> > > methods allow users who *don't* exist in the database to log in?
> > > And why would anyone find it surprising that this does not happen?
> >
> > Can someone comment if having to create the database user account to use
> > PAM is something that people forget?  Is there increased confusion
> > because PAM is usually used for the operating system usernames?
> >
> > Attached is the addition I made to the docs recently.  Is it useful?
>
> Yes, because PAM works different on other systems, specially if it's
> configured to use LDAP or some such.  Though I'd rephrase with something
> like
>
> >       default PAM service name is <literal>postgresql</literal>. You can
> >       optionally supply your own service name after the <literal>pam</>
> >       key word in the file <filename>pg_hba.conf</filename>.
> > !     Note that PAM is only used to validate username/password pairs;
> > !     therefore, the user must already exist in the database before PAM
> > !     can be used for authentication.  For more information about
> > !     PAM, please read the <ulink url="http://www.kernel.org/pub/linux/libs/pam/">

OK, update done:

    PAM is used only to validate username/password pairs.
    Therefore the user must already exist in the database before PAM
    can be used for authentication.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073