Re: pg_basebackup ignores the existing data directory permissions - Mailing list pgsql-hackers

From Haribabu Kommi
Subject Re: pg_basebackup ignores the existing data directory permissions
Date
Msg-id CAJrrPGckmkFnW_yeoDriPAkjRVH9eNTKJwQ1=WZpv5edD5HbuQ@mail.gmail.com
Whole thread Raw
In response to Re: pg_basebackup ignores the existing data directory permissions  (Magnus Hagander <magnus@hagander.net>)
Responses Re: pg_basebackup ignores the existing data directory permissions  (Michael Paquier <michael@paquier.xyz>)
List pgsql-hackers

On Thu, Feb 14, 2019 at 8:57 PM Magnus Hagander <magnus@hagander.net> wrote:
On Thu, Feb 14, 2019 at 9:10 AM Michael Paquier <michael@paquier.xyz> wrote:
On Thu, Feb 14, 2019 at 06:34:07PM +1100, Haribabu Kommi wrote:
> we have an application that is used to create the data directory with

Well, initdb would do that happily, so there is no actual any need to
do that to begin with.  Anyway..

> owner access (0700), but with initdb group permissions option, it
> automatically
> converts to (0750) by the initdb. But pg_basebackup doesn't change it when
> it tries to do a backup from a group access server.

So that's basically the opposite of the case I was thinking about,
where you create a path for a base backup with permissions strictly
higher than 700, say 755, and the base backup path does not have
enough restrictions.  And in your case the permissions are too
restrictive because of the application creating the folder itself but
they should be relaxed if group access is enabled.  Actually, that's
something that we may want to do consistently across all branches.  If
an application calls pg_basebackup after creating a path, they most
likely change the permissions anyway to allow the postmaster to
start.

I think it could be argued that neither initdb *or* pg_basebackup should change the permissions on an existing directory, because the admin may have done that intentionally. But when they do create the directory, they should follow the same patterns.

Hmm, even if the administrator set some specific permissions to the data directory,
PostgreSQL server doesn't allow server to start if the permissions are not (0700)
for versions less than 11 and (0700 or 0750) for version 11 or later.

To let the user to use the PostgreSQL server, user must change the permissions
of the data directory. So, I don't see a problem in changing the permissions by these
tools.

Regards,
Haribabu Kommi
Fujitsu Australia

pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: pg11.1: dsa_area could not attach to segment
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: Cache relation sizes?