2

我想用 www-data 用户访问 postgres。该命令由 cli 启动。

我的程序需要能够启动此命令:

psql --username www-data --host=127.0.0.1 --dbname=dbname

如果我删除 --host=127.0.0.1,它会完美运行,不幸的是我使用第三方程序来执行此命令,我可以更改它。

我的 pg_hba.conf 是标准的本地所有 postgres peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
#host   all             www-data         127.0.0.1/32            md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

在 postgresql.conf 我把

listen_addresses = '*'

是的,它不安全,但我正在测试一切。还是不行

在 .pgpass

127.0.0.1:5432:*:www-data:password

我尝试了所有方法:peer,ident,md5,password,我每次都有错误。

错误信息(法语):

FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << www-data >>
mot de passe récupéré dans le fichier fichier « /var/www/.pgpass »

这意味着用户 www-data 的密码认证失败。它还报告说它能够从 pgpass (/var/www/.pgpass) 中恢复密码。

谢谢你的帮助,我不知道该怎么办。

4

1 回答 1

1

好吧,那是非常愚蠢的。

当我创建 createuser 命令时,我使用了 -W 而不是 -P。我误读了 createuser --help :(

当我再次尝试重新创建 www-data 时,我意识到我的错误,并看到密码只被询问了一次,而不是两次。

于 2013-08-07T17:59:47.543 回答