BUG #17649: With libpg5 15.0 psql 10.22 uses HOME variable instead of uid and /etc/passwd to select .pgpass file

Started by PG Bug reporting formover 3 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 17649
Logged by: Reinhard Vicinus
Email address: rvpostgres@metaways.de
PostgreSQL version: 15.0
Operating system: Ubuntu 18.04
Description:

This is probably the same issue that was reported in bug #17647

The general postgresql version we use is 10.22-1.pgdg18.04+1

With the update of libpg5 from 14.5-1.pgdg18.04+1 to 15.0-1.pgdg18.04+1 the
behavior of psql changed and with libpg5 version 15.0 it uses the HOME
environment variable to determine the location of the .pgpass file. With
14.5 the uid of the running process is used to determine the home directory
location. This causes the issue that "sudo -u postgres psql" no longer finds
the .pgpass file in /var/lib/postgresql/. After downgrading libpg5 to
14.5-1.pgdg18.04+1 or setting the correct HOME environment variable, it
works again as intended.

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #17649: With libpg5 15.0 psql 10.22 uses HOME variable instead of uid and /etc/passwd to select .pgpass file

Hi,

On Tue, Oct 18, 2022 at 09:17:05AM +0000, PG Bug reporting form wrote:

The following bug has been logged on the website:

Bug reference: 17649
Logged by: Reinhard Vicinus
Email address: rvpostgres@metaways.de
PostgreSQL version: 15.0
Operating system: Ubuntu 18.04
Description:

This is probably the same issue that was reported in bug #17647

Indeed!

The general postgresql version we use is 10.22-1.pgdg18.04+1

With the update of libpg5 from 14.5-1.pgdg18.04+1 to 15.0-1.pgdg18.04+1 the
behavior of psql changed and with libpg5 version 15.0 it uses the HOME
environment variable to determine the location of the .pgpass file. With
14.5 the uid of the running process is used to determine the home directory
location. This causes the issue that "sudo -u postgres psql" no longer finds
the .pgpass file in /var/lib/postgresql/. After downgrading libpg5 to
14.5-1.pgdg18.04+1 or setting the correct HOME environment variable, it
works again as intended.

As I just answered on the other bug, this is a wanted and documented change,
you can refer at
/messages/by-id/1634252654444.90107@mit.edu for
the discussion about it.

You can use "sudo -iu" to behave the way you want.