Я потратил некоторое время на поиски этого, и, похоже, я единственный, у кого проблема с PAM, не аутентифицируемым через mysql из-за текущих обновлений, поэтому я подумал, что опубликую здесь свою проблему, и если я найду решение, я опубликую здесь также для другие, чтобы следовать.
Короче - я запускаю postfix с saslauthd и dovecot. Оба проходят аутентификацию через pam, используя mysql в качестве источника учетных данных.
Все работало нормально до сегодняшнего обновления - я больше не могу подключиться к почтовому серверу, и вот что я вижу в журналах:
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 использует устаревший make_scrambled_password, который больше не поддерживается mysql.
Я не знаю, каким будет решение, и буду признателен, если кто-нибудь даст совет.
Я проверил исходный код на странице проекта и вижу, что используется устаревшая функция. Так что, похоже, это ошибка в pam_mysql, и потребуется обновление ([ошибка сообщена на странице pam_mysql sourceforge] [1], а также в системе отслеживания ошибок сообщества Arch (https://bugs.archlinux.org/task/39083?project=5&pagenum=1))
Я видел некоторые обходные патчи в Интернете (https://lists.fedoraproject.org/pipermail/scm-commit/2011-June/613231.html), однако я не уверен, подходит ли это для производственной среды. Вроде придется самому прошивать. Я отправлю сюда патч, чтобы другие могли его использовать.
Большое спасибо, Грег
Поддержка pam_mysql прекращена из-за того, что проект не работал почти 6 лет. Решением будет миграция и использование другого бэкэнда pam.
Я использовал cyrus sasl - теперь он был удален и заменен на dovecot, который предоставляет серверную часть аутентификации smtpd, распознаваемую postfix. Я настроил dovecot для использования sql изначально (без pam в середине).