psql: 致命: 用户的 PAM 身份验证失败

Mar*_*s L 6 postgresql pam postgresql-9.2

PostgreSQL 9.2.4

我无法再使用过去工作过的用户登录。我假设是配置问题。因此,为了进行测试,我创建了一个测试用户角色“testing”,其选项与相关角色相同(作为仍然可以登录的“postgres”用户!):

CREATE ROLE testing WITH SUPERUSER NOCREATEDB NOCREATEROLE LOGIN PASSWORD 'pw';

角色创建成功:

                                  角色列表
     角色名称 | 属性 | 成员
    -------------+------------------------------------ -----------+-----------
     postgres | 超级用户、创建角色、创建数据库、复制 | {}
     测试 | 超级用户 | {}
     ...

但是,登录会导致此消息:

# psql -h 127.0.0.1 -p 5434 -U 测试
用户测试密码:
psql: 致命: 用户“测试”的 PAM 身份验证失败
致命:用户“测试”的 PAM 身份验证失败

当我尝试使用原始角色时,我也会收到此错误。

pg_hba.conf:

# "local" 仅用于 Unix 域套接字连接
本地所有所有 pam
# IPv4 本地连接:
托管所有所有 0.0.0.0/0 pam

有没有人知道问题可能是什么?

Mar*_*s L 3

主要问题是尝试登录的数据库角色不存在 linux 用户。还有一些其他的小配置问题(Linux 组、权限)需要修复。然后就可以再次登录了。

  • 您能否详细说明除了创建 unix 用户之外您还采取了哪些措施来解决该问题?我正在努力解决同样的问题,并试图弄清楚发生了什么。 (8认同)