PAM将不会使用mysql进行身份validation(不build议使用make_scrambled_pa​​ssword)

我花了一些时间寻找这个,似乎我是唯一有问题的PAM没有通过MySQLauthentication,由于目前的更新,所以我想我会在这里发布我的问题,如果我find解决scheme,我会在这里发布以及别人跟随。

总之 – 我用saslauthd和dovecot运行postfix。 两者都通过使用mysql作为凭据源的pam进行身份validation。

一切正常工作,直到今天更新 – 我无法再连接到邮件服务器,这是我在日志中看到的:

PAM unable to dlopen(/usr/lib/security/pam_mysql.so): /usr/lib/security/pam_mysql.so: undefined symbol: make_scrambled_password PAM adding faulty module: /usr/lib/security/pam_mysql.so DEBUG: auth_pam: pam_authenticate failed: Module is unknown do_auth : auth failure: [user=xxxx] [service=smtp] [realm=xxxx] [mech=pam] [reason=PAM auth error] 

所以我可能是错的,但对我的理解pam_mysql.so是使用不再支持MySQL的弃用的make_scrambled_pa​​ssword。

我不知道解决scheme是什么,如果有人可以build议,将不胜感激。


我检查了项目页面上的源代码,可以看到不赞成使用的函数。 所以这似乎是pam_mysql中的一个错误,需要更新([在pam_mysql sourceforge页面上报告的错误] [1]以及arch community bug tracker( https://bugs.archlinux.org/task/39083?project = 5&pagenum = 1 ))


我已经看到了一些围绕互联网的解决方法补丁( https://lists.fedoraproject.org/pipermail/scm-commits/2011-June/613231.html ),但我不确定这是否适合生产环境。 看来我将不得不自己修补它。 我将在这里发布修补程序供其他人使用。

非常感谢,格雷格

由于项目已经死了近6年,对pam_mysql的支持现在已经下降了。 解决scheme将是迁移并使用另一个pam后端。

我正在使用cyrus sasl–现在已经卸载,并由dovecot取代,后者提供postfix识别的smtpd身份validation后端。 我configurationdovecot本地使用sql(中间没有pam)。