This issue with libpam predates mysql 5.7. It's present in trusty's vsftpd 3.0.2-1ubuntu2.14.04.1, mysql 5.5.54-0ubuntu0.14.04.1, and the standard libpam package. My workaround last year when I encountered the issue was to remove both vsftpd and libpam-mysql from the default repos and to manually install vsdfpd from
http://dinofly.com/files/linux/vsftpd_3.0.2-1ubuntu2_amd64.deb https://ubuntuforums.org/archive/index.php/t-2218804.html is the spot where I found this fix a year ago. I've been waiting for an official fix ever since but if one has been released, I missed it. I'm still running this custom version. It is entirely possible that the bug I'm experiencing with 5.5 is different but related to what is causing the problem covered in 1574900, but as the symptoms seem to be identical, I tend to assume it is the same bug. The host involved here is my employer's primary public ftp server where we give 3rd parties (customers, contractors, etc) the ability to upload large files and we have a simple mysql db where their virtual users are kept. If you need a guinea pig host for testing, I can easily spin up a clone of this system for testing purposes. -----Original Message----- From: boun...@canonical.com [mailto:boun...@canonical.com] On Behalf Of Nish Aravamudan Sent: Monday, March 20, 2017 11:56 AM To: Joi L. Ellis <jlel...@pavlovmedia.com> Subject: [Bug 1574900] Re: libpam-mysql undefined symbol: make_scrambled_password @jlellis: There is no MySQL 5.7 in Trusty. Are you using a PPA? Or are you saying that MySQL 5.5 also has this problem? -- You received this bug notification because you are subscribed to pam- mysql in Ubuntu. Matching subscriptions: pam-mysql https://bugs.launchpad.net/bugs/1574900 Title: libpam-mysql undefined symbol: make_scrambled_password Status in pam-mysql package in Ubuntu: Fix Released Status in pam-mysql source package in Xenial: Fix Committed Status in pam-mysql source package in Yakkety: Fix Committed Status in pam-mysql package in Fedora: Unknown Bug description: [Impact] * libpam-mysql is unable to be used because of an upstream symbol change in libmysqlclient. * Upstream libpam-mysql has fixed this by updating the source to use the now-exported API. [Test Case] Steps to reproduce (with vsftpd): Installation requirements: mysqlserver 5.7.x, libpam-mysql, vsftpd create vsftpd user: useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd create mysql database and user: == // Start SQL CREATE DATABASE vsftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass'; FLUSH PRIVILEGES; USE vsftpd; CREATE TABLE `accounts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , UNIQUE ( `username` )); insert into accounts(username,pass) values('user',password('password')); ==// End SQL Configure PAM: insert into /etc/pam.d/vsftpd: auth required pam_mysql.so verbose=1 user=vsftpd host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3 passwd=ftpdpass account required pam_mysql.so verbose=1 user=vsftpd host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3 passwd=ftpdpass Configure vsftpd (/etc/vsftpd.conf) : listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES restart vsftpd: /etc/init.d/vsftpd restart check /var/log/auth.log [Regression Potential] * There is currently no fix or workaround, as the library is basically broken as installed from Ubuntu. * I believe the regression potential to be very low because the current code does not work. --- In Ubuntu 16.04, the libpam-mysql package does not work. It crashes with the below error: PAM unable to dlopen(pam_mysql.so): /lib/security/pam_mysql.so: undefined symbol: make_scrambled_password I fixed this issue by download the source for the package and applying the patches that come from this source RPM: http://dinofly.com/files/linux/pam_mysql-0.7-0.20.rc1.fc23.src.rpm I then created unofficial packages after applying the patch. They can be downloaded here: http://www.dinofly.com/files/linux/libpam-mysql_0.7~RC1-4ubuntu3_amd64.deb http://www.dinofly.com/files/linux/libpam-mysql_0.7~RC1-4ubuntu3_i386.deb libpam-mysql now works again on Ubuntu 16.04 x86 and x64. Here is the initial RedHat bug report: https://bugzilla.redhat.com/show_bug.cgi?id=709534 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pam-mysql/+bug/1574900/+subscriptions -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1574900 Title: libpam-mysql undefined symbol: make_scrambled_password To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pam-mysql/+bug/1574900/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs