<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pg_passwd.sgml,v 1.3 2000/07/21 00:24:37 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pg_passwd.sgml,v 1.4 2000/11/18 19:05:58 petere Exp $
Postgres documentation
-->
<refentry id="APP-PG-PASSWD">
+ <docinfo>
+ <date>2000-11-18</date>
+ </docinfo>
+
<refmeta>
- <refentrytitle id="APP-PG-PASSWD-TITLE">
- <application>pg_passwd</application>
- </refentrytitle>
+ <refentrytitle id="APP-PG-PASSWD-TITLE"><application>pg_passwd</application></refentrytitle>
+ <manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
+
<refnamediv>
- <refname>
- <application>pg_passwd</application>
- </refname>
- <refpurpose>
- Manipulate the flat password file
- </refpurpose>
+ <refname>pg_passwd</refname>
+ <refpurpose>Manipulate a text password file</refpurpose>
</refnamediv>
+
<refsynopsisdiv>
- <refsynopsisdivinfo>
- <date>1999-07-20</date>
- </refsynopsisdivinfo>
- <synopsis>
-pg_passwd <replaceable class="parameter">filename</replaceable>
- </synopsis>
+ <cmdsynopsis>
+ <command>pg_passwd</command>
+ <arg choice="plain"><replaceable>filename</replaceable></arg>
+ </cmdsynopsis>
</refsynopsisdiv>
- <refsect1 id="R1-APP-PG-PASSWD-1">
- <refsect1info>
- <date>1999-07-20</date>
- </refsect1info>
- <title>
- Description
- </title>
+ <refsect1 id="app-pg-passwd-description">
+ <title>Description</title>
<para>
- <application>pg_passwd</application>
- is a tool to manipulate the
- flat password file functionality of
- <productname>Postgres</productname>. This style of password
- authentication is not <emphasis>required</emphasis> in an
- installation, but is one of several supported security mechanisms.
+ <application>pg_passwd</application> is a tool to manipulate a flat
+ text password file for the purpose of using that file to control
+ the client authentication of the
+ <productname>PostgreSQL</productname> server. More information
+ about setting up this authentication mechanism can be found in the
+ <citetitle>Administrator's Guide</citetitle>.
</para>
<para>
- Specify the password file in the same style of
- <literal>Ident</literal> authentication in
- <filename>$PGDATA/pg_hba.conf</filename>:
-
- <programlisting>
-host unv 133.65.96.250 255.255.255.255 password passwd
- </programlisting>
-
- where the above line allows access from 133.65.96.250 using the passwords listed
- in <filename>$PGDATA/passwd</filename>.
- The format of the password file follows those of
- <filename>/etc/passwd</filename>
- and
- <filename>/etc/shadow</filename>.
- The first field is the user name, and the second field
- is the encrypted password.
- The rest is completely ignored.
- Thus the following three sample lines specify the same user and password pair:
-
- <programlisting>
-pg_guest:/nB7.w5Auq.BY:10031::::::
-pg_guest:/nB7.w5Auq.BY:93001:930::/home/guest:/bin/tcsh
-pg_guest:/nB7.w5Auq.BY:93001
- </programlisting>
+ The form of a text password file is one entry per line; the fields
+ of each entry are separated by colons. The first field is the user
+ name, the second field is the encrypted password. Other fields are
+ ignored (to allow password files to be shared between applications
+ that use similar formats). The functionality of the
+ <application>pg_passwd</application> utility is to enable a user to
+ interactively add entries to such a file, to alter passwords of
+ existing entries, and to take care of encrypting the passwords.
</para>
<para>
- Supply the password file to the pg_passwd command.
- In the case described above, after changing the working directory to
- <envar>PGDATA</envar>, the following command execution specifies
- the new password for <literal>pg_guest</literal>:
-
- <programlisting>
- $ pg_passwd passwd
- Username: pg_guest
- Password:
- Re-enter password:
- </programlisting>
-
- where the <literal>Password:</literal>
- and <literal>Re-enter password:</literal>
- prompts require the same password input which are not displayed
- on the terminal.
- The original password file is renamed to
- <filename>passwd.bk</filename>.
+ Supply the name of the password file as argument to the pg_passwd
+ command. To be of use for client authentication the file needs to
+ be location in the server's data directory, and the base name of
+ the file needs to be specified in the
+ <filename>pg_hba.conf</filename> access control file.
+
+<screen>
+<prompt>$</prompt> <userinput>pg_passwd /usr/local/pgsql/data/passwords</userinput>
+<computeroutput>File "/usr/local/pgsql/data/passwords" does not exist. Create? (y/n):</computeroutput> <userinput>y</userinput>
+<prompt>Username:</prompt> <userinput>guest</userinput>
+<prompt>Password:</prompt>
+<prompt>Re-enter password:</prompt>
+</screen>
+
+ where the <literal>Password:</literal> and <literal>Re-enter
+ password:</literal> prompts require the same password input which
+ is not displayed on the terminal.
</para>
<para>
- <application>psql</application>
- uses the <option>-u</option>
- option to invoke this style of
- authentication.
+ The original password file is renamed to
+ <filename>passwords.bk</filename>.
</para>
<para>
- The following lines show the sample usage of the option:
+ To make use of this password file, put a line like the following in
+ <filename>pg_hba.conf</filename>:
<programlisting>
-$ psql -h hyalos -u unv
-Username: pg_guest
-Password:
-Welcome to the POSTGRESQL interactive sql monitor:
- Please read the file COPYRIGHT for copyright terms of POSTGRESQL
- type \? for help on slash commands
- type \q to quit
- type \g or terminate with semicolon to execute query
- You are currently connected to the database: unv
-unv=>
- </programlisting>
- </para>
-
- <para>
- Perl5 authentication
- uses the new style of the <filename>Pg.pm</filename> like this:
+host unv 133.65.96.250 255.255.255.255 password passwords
+</programlisting>
- <programlisting>
-$conn = Pg::connectdb("host=hyalos dbname=unv
- user=pg_guest password=xxxxxxx");
- </programlisting>
-
- For more details, refer to
- <filename>src/interfaces/perl5/Pg.pm</filename>.
+ which would allow access from host 133.65.96.250 using the
+ passwords listed in the <filename>passwords</filename> file (and
+ only to the users listed in the file).
</para>
- <para>
- Pg{tcl,tk}sh authentication
- uses the
- <function>pg_connect</function>
- command with the
- <option>-conninfo</option>
- option thusly:
-
-<programlisting>
-% set conn [pg_connect -conninfo \\
- "host=hyalos dbname=unv \\
- user=pg_guest password=xxxxxxx "]
- </programlisting>
-
- You can list all of the keys for the option by executing the following
- command:
+ <note>
+ <para>
+ It is also useful to have entries in password file with an empty
+ password field. (This is different from an empty password.)
+ These entries cannot be managed by
+ <application>pg_passwd</application>, but it is always possible to
+ edit password files manually.
+ </para>
+ </note>
+ </refsect1>
- <programlisting>
-% puts [ pg_conndefaults]
- </programlisting>
+ <refsect1 id="app-pg-passwd-seealso">
+ <title>See also</title>
+ <para>
+ <citetitle>PostgreSQL Administrator's Guide</citetitle>
</para>
</refsect1>
</refentry>