Я использую Ubuntu 16.04 и установил libpam-mysql
и pamtester
. Чтобы проверить модуль, я попытался выполнить следующую команду:
pamtester --item user=X --item passwd=X --item host=127.0.0.1 --item db=X --item table=X --item usercolumn=X --item passwdcolumn=X --item crypt=1 mysql branja authenticate
Но он всегда возвращается с сообщением об ошибке:
pamtester: Unknown item type "passwd"
Я могу заверить вас, что вся информация о соединении Я указал, является действительным, но проверка подлинности не проходит, прежде чем он заходит так далеко. Кажется, я не могу найти какую-либо информацию о том, какие параметры требуются, если не те, которые я дал.
Я также попытался добавить в /etc/pam.d/mysql
следующее:
auth required pam_mysql.so user=X passwd=X host=127.0.0.1 db=X table=X usercolumn=X passwdcolumn=X crypt=1
account sufficient pam_mysql.so user=X passwd=X host=127.0.0.1 db=X table=X usercolumn=X passwdcolumn=X crypt=1
Но это всегда приводит к сбою аутентификации, предположительно по той же причине, что и в примере выше?
Ничего себе.
После просматривания /var/log/auth.log
и видя следующее сообщение, я наконец выяснил, что это происходит из-за ошибки в libpam-mysql
пакет.
PAM unable to dlopen(pam_mysql.so): /lib/security/pam_mysql.so: undefined symbol: make_scrambled_password
PAM adding faulty module: pam_mysql.so
Решение, для любого, кому интересно, состоит в том, чтобы удалить чиновника libpam-mysql
и пойдите с неофициальным пакетом, который исправляет эту ошибку.
[ Источник ]