这个问题被分解为SO和SF的领域。 这是一个编码项目,但我相信我遇到的错误更多的是系统pipe理而不是代码,所以我把它放在这里。
我正在尝试做一个PHPlogin页面来validation用户的预先存在的系统用户帐户。 我安装了php5 pamauthentication模块,并按照文档进行configuration。
我用下面的内容创build了/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
我怎样才能解决这个问题? 对于简单的事情(或者我想),我应该写我自己的函数来parsing/ etc / shadow和/ etc / passwd吗? 我没有试图将用户login到系统本身,我只需要让用户使用他们的系统用户/密码login到我的脚本,并检查他们是否属于适当的组来运行给定的报告。
您应该使用pam_unix而不是pam_pwdb您正在运行哪个OS /发行版?
看起来像/lib/security/pam_pwdb.so文件不存在