无法使 PHP PAM 身份验证正常工作

无法使 PHP PAM 身份验证正常工作

这个问题在 SO 和 SF 领域中存在分歧。这是一个编码项目,但我认为我遇到的错误与系统管理的关系比与代码的关系更大,所以我把它放在这里。

我正在尝试制作一个 PHP 登录页面,该页面可根据用户现有的系统用户帐户对用户进行身份验证。我安装了 php5 pam 身份验证模块并按照文档对其进行了配置。

我创建了 /etc/pam.d/php,内容如下:

# /etc/pam.d/php
#
# note: both an auth and account entry are required

auth    sufficient      /lib/security/pam_pwdb.so shadow nodelay
account sufficient      /lib/security/pam_pwdb.so

我将“pam.servicename = “php”;”添加到我的 /etc/php5/apache2/php.ini 文件中,然后重新启动了我的 apache 服务。

每次我的脚本使用 pam_auth 函数时,我的 auth.log 中都会出现以下内容:

Jan  6 08:56:33 cobalt apache2: PAM unable to dlopen(/lib/security/pam_pwdb.so)
Jan  6 08:56:33 cobalt apache2: PAM [error: /lib/security/pam_pwdb.so: cannot open shared object file: No such file or directory]
Jan  6 08:56:33 cobalt apache2: PAM adding faulty module: /lib/security/pam_pwdb.so

我该如何解决这个问题?对于如此简单的事情(或者我认为如此),我应该只编写自己的函数来解析 /etc/shadow 和 /etc/passwd 吗?我并不是想让用户登录到系统本身,我只需要让用户使用他们的系统用户/密码登录到我的脚本,并检查他们是否属于适当的组以运行给定的报告。

答案1

您应该使用 pam_unix 而不是 pam_pwdb 您正在使用哪种操作系统/发行版?

答案2

看起来你的 /lib/security/pam_pwdb.so 文件不存在

相关内容