尽管定义了 PGPASSFILE var,但 psql 仍提示输入用户密码

amp*_*ent 5 postgresql ubuntu-10.04 psql

我有一个环境变量PGPASSFILE声明指向我的.pgpass文件的位置。

>echo $PGPASSFILE
/somedir/.pgpass
Run Code Online (Sandbox Code Playgroud)

根据此文档文件的权限标记是正确的,不会将文件暴露给其他任何人:

>ls -la /somedir
drwxr-xr-x 2 root root 4096 2014-06-25 17:40 .
drwxr-xr-x 6 root root 4096 2014-06-25 16:37 ..
-rw------- 1 root root  354 2014-06-25 16:43 .pgpass
-rw-r--r-- 1 root root   30 2014-06-25 16:37 .pgpass_path
Run Code Online (Sandbox Code Playgroud)

该文件看起来正确:

  1 localhost:*:*:postgres:blabla
  2 localhost:*:somedb:somedb_master:blabla
  3 localhost:*:somedb:somedb_rw:blabla
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试调用 psql 时,它仍然提示我输入密码:

>psql -h localhost -d somedb -U somedb_rw
Password for user somedb_rw:
Run Code Online (Sandbox Code Playgroud)

当我输入密码时连接成功,但不应该提示我。知道可能有什么问题吗?这是在 Ubuntu 10.04 VM 上。在我的 Mac 主机上,相同的配置无需提示即可工作。