Revert "initdb: Change authentication defaults"
This reverts commit 09f08930f0
.
The buildfarm client needs some adjustments first.
This commit is contained in:
parent
09f08930f0
commit
7961886580
|
@ -136,24 +136,9 @@ PostgreSQL documentation
|
||||||
replication connections.
|
replication connections.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
The default is <literal>peer</literal> for Unix-domain socket
|
|
||||||
connections on operating systems that support it, otherwise
|
|
||||||
<literal>md5</literal>, and <literal>md5</literal> for TCP/IP
|
|
||||||
connections.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
When running <command>initdb</command> on a platform that does not
|
|
||||||
support <literal>peer</literal> authentication, either a password must
|
|
||||||
be provided (see <option>-W</option> and other options) or a different
|
|
||||||
authentication method must be chosen, otherwise
|
|
||||||
<command>initdb</command> will error.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Do not use <literal>trust</literal> unless you trust all local users on your
|
Do not use <literal>trust</literal> unless you trust all local users on your
|
||||||
system.
|
system. <literal>trust</literal> is the default for ease of installation.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
|
@ -156,19 +156,24 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The default client authentication setup is such that users can connect over
|
However, while the directory contents are secure, the default
|
||||||
the Unix-domain socket to the same database user name as their operating
|
client authentication setup allows any local user to connect to the
|
||||||
system user names (on operating systems that support this, which are most
|
database and even become the database superuser. If you do not
|
||||||
modern Unix-like systems, but not Windows) and otherwise with a password.
|
trust other local users, we recommend you use one of
|
||||||
To assign a password to the initial database superuser, use one of
|
|
||||||
<command>initdb</command>'s <option>-W</option>, <option>--pwprompt</option>
|
<command>initdb</command>'s <option>-W</option>, <option>--pwprompt</option>
|
||||||
or <option>--pwfile</option> options.<indexterm>
|
or <option>--pwfile</option> options to assign a password to the
|
||||||
|
database superuser.<indexterm>
|
||||||
<primary>password</primary>
|
<primary>password</primary>
|
||||||
<secondary>of the superuser</secondary>
|
<secondary>of the superuser</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
This configuration is secure and sufficient to get started. Later, see
|
Also, specify <option>-A md5</option> or
|
||||||
<xref linkend="client-authentication"/> for more information about setting
|
<option>-A password</option> so that the default <literal>trust</literal> authentication
|
||||||
up client authentication.
|
mode is not used; or modify the generated <filename>pg_hba.conf</filename>
|
||||||
|
file after running <command>initdb</command>, but
|
||||||
|
<emphasis>before</emphasis> you start the server for the first time. (Other
|
||||||
|
reasonable approaches include using <literal>peer</literal> authentication
|
||||||
|
or file system permissions to restrict connections. See <xref
|
||||||
|
linkend="client-authentication"/> for more information.)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -63,6 +63,15 @@ postgres$ <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</useri
|
||||||
</para>
|
</para>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>
|
||||||
|
At this point, if you did not use the <command>initdb</command> <literal>-A</literal>
|
||||||
|
option, you might want to modify <filename>pg_hba.conf</filename> to control
|
||||||
|
local access to the server before you start it. The default is to
|
||||||
|
trust all local users.
|
||||||
|
</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
<para>
|
<para>
|
||||||
The previous <command>initdb</command> step should have told you how to
|
The previous <command>initdb</command> step should have told you how to
|
||||||
|
|
|
@ -185,6 +185,7 @@ static const char *default_timezone = NULL;
|
||||||
"# allows any local user to connect as any PostgreSQL user, including\n" \
|
"# allows any local user to connect as any PostgreSQL user, including\n" \
|
||||||
"# the database superuser. If you do not trust all your local users,\n" \
|
"# the database superuser. If you do not trust all your local users,\n" \
|
||||||
"# use another authentication method.\n"
|
"# use another authentication method.\n"
|
||||||
|
static bool authwarning = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Centralized knowledge of switches to pass to backend
|
* Centralized knowledge of switches to pass to backend
|
||||||
|
@ -2390,6 +2391,16 @@ usage(const char *progname)
|
||||||
printf(_("\nReport bugs to <pgsql-bugs@lists.postgresql.org>.\n"));
|
printf(_("\nReport bugs to <pgsql-bugs@lists.postgresql.org>.\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
check_authmethod_unspecified(const char **authmethod)
|
||||||
|
{
|
||||||
|
if (*authmethod == NULL)
|
||||||
|
{
|
||||||
|
authwarning = true;
|
||||||
|
*authmethod = "trust";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
check_authmethod_valid(const char *authmethod, const char *const *valid_methods, const char *conntype)
|
check_authmethod_valid(const char *authmethod, const char *const *valid_methods, const char *conntype)
|
||||||
{
|
{
|
||||||
|
@ -3237,16 +3248,8 @@ main(int argc, char *argv[])
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (authmethodlocal == NULL)
|
check_authmethod_unspecified(&authmethodlocal);
|
||||||
{
|
check_authmethod_unspecified(&authmethodhost);
|
||||||
#ifdef HAVE_AUTH_PEER
|
|
||||||
authmethodlocal = "peer";
|
|
||||||
#else
|
|
||||||
authmethodlocal = "md5";
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
if (authmethodhost == NULL)
|
|
||||||
authmethodhost = "md5";
|
|
||||||
|
|
||||||
check_authmethod_valid(authmethodlocal, auth_methods_local, "local");
|
check_authmethod_valid(authmethodlocal, auth_methods_local, "local");
|
||||||
check_authmethod_valid(authmethodhost, auth_methods_host, "host");
|
check_authmethod_valid(authmethodhost, auth_methods_host, "host");
|
||||||
|
@ -3329,6 +3332,14 @@ main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
printf(_("\nSync to disk skipped.\nThe data directory might become corrupt if the operating system crashes.\n"));
|
printf(_("\nSync to disk skipped.\nThe data directory might become corrupt if the operating system crashes.\n"));
|
||||||
|
|
||||||
|
if (authwarning)
|
||||||
|
{
|
||||||
|
printf("\n");
|
||||||
|
pg_log_warning("enabling \"trust\" authentication for local connections");
|
||||||
|
fprintf(stderr, _("You can change this by editing pg_hba.conf or using the option -A, or\n"
|
||||||
|
"--auth-local and --auth-host, the next time you run initdb.\n"));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build up a shell command to tell the user how to start the server
|
* Build up a shell command to tell the user how to start the server
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -361,11 +361,6 @@ extern int fls(int mask);
|
||||||
extern int getpeereid(int sock, uid_t *uid, gid_t *gid);
|
extern int getpeereid(int sock, uid_t *uid, gid_t *gid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* must match src/port/getpeereid.c */
|
|
||||||
#if defined(HAVE_GETPEEREID) || defined(SO_PEERCRED) || defined(LOCAL_PEERCRED) || defined(HAVE_GETPEERUCRED)
|
|
||||||
#define HAVE_AUTH_PEER 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_ISINF
|
#ifndef HAVE_ISINF
|
||||||
extern int isinf(double x);
|
extern int isinf(double x);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -2302,7 +2302,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
|
||||||
/* initdb */
|
/* initdb */
|
||||||
header(_("initializing database system"));
|
header(_("initializing database system"));
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
"\"%s%sinitdb\" -D \"%s/data\" -A trust --no-clean --no-sync%s%s > \"%s/log/initdb.log\" 2>&1",
|
"\"%s%sinitdb\" -D \"%s/data\" --no-clean --no-sync%s%s > \"%s/log/initdb.log\" 2>&1",
|
||||||
bindir ? bindir : "",
|
bindir ? bindir : "",
|
||||||
bindir ? "/" : "",
|
bindir ? "/" : "",
|
||||||
temp_instance,
|
temp_instance,
|
||||||
|
|
Loading…
Reference in New Issue