Более того, собрал cyrus-sasl-2.1.18 с поддержкой MySQL
/usr/ports/security/cyrus-sasl2
make -DWITH_MYSQL -DWITHOUT_OTP -DWITHOUT_CRAM -DWITHOUT_DIGEST -DWITHOUT_NTLM -DWITHOUT_GSSAPI -DWITH_ALWAYSTRUEДалее по документации к SASL'у пытаюсь напрямую лезть в SQL без PAM'а, кстати, я действительно не понимаю зачем городить этот слоёный пирог с PAM'ом, если SASL сам MySQL поддерживает
/usr/local/lib/sasl2/smptd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
sql_engine: mysql
sql_user: mailer
sql_passwd: mailer
sql_hostnames: 127.0.0.1
sql_database: mail
sql_select: select password from users where login='%u@%r'
Результат: SASL'у аболютно по барабану на то, что у меня в /usr/local/lib/sasl2/smptd.conf, он всё равно пытается лезть к своей sasldb. Если в этой sasldb завести пользователя командой
saslpasswd2 -c username, то авторизация начинает работать!
Ну как заставить SASL обращаться к MySQL, а не к saslb?!
Я пробовал даже
pwcheck_method: alwaystrue
Всё равно к sasldb пытается лезть.
В чём прикол?!