前面就懶得重複了。文件認證方法和數據庫認證方法唯一的區別就在於pam文件的配置和相關的數據庫設置。
前面的主配置文件部分和虛擬用戶的配置文件部分請參看http://blog.csdn.net/xdnabl/article/details/54755139
那麼,一切從/etc/pam.d/vsftpd開始
因爲/etc/pam.d/vsfpd裏要添加mysql的pam認證文件,SO,必須先安裝pam_mysql
pam_mysql在https://sourceforge.net/projects/pam-mysql/files/pam-mysql/ 下載,我之前在做openvpn時用的是0.62,現在依舊沿用。
#tar zxvf pam_mysql-0.6.2.tar.gz
#cd pam_mysql-0.6.2
#./configure
#make
#make install
安裝完成之後,會生成文件/usr/lib/security/pam_mysql.so,/usr/lib/security/pam_mysql.la
cp /usr/lib/security/pam_mysql.* /lib/security *//把它們拷貝到/lib/security目錄下
關於版本選用要說明一下,mysql6.0以上的可以用pam_mysql-0.7以上版本,mysql5.X的還是用0.62的保險一點,否則可能會出現登錄驗證失敗的情況。
OK,現在開始編輯/etc/pam.d/vsfpd
把之前的全註釋掉,添加下列配置
auth required pam_mysql.so user=vftpuser passwd=123456 host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=0
account required pam_mysql.so user=vftpuser passwd=123456 host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=0
之後進行mysql設置,添加數據庫和相關的查詢帳號
#mysql
mysql> create database ftp;
mysql> use ftp;
mysql> create table users( name char(6),passwd char(6) );
mysql> insert into users values('aa','123456');
mysql> GRANT ALL ON ftp.* TO vftpuser@localhost IDENTIFIED BY '123456';
mysql> flush privileges;
至此以mysql驗證方法取代用戶數據庫文件驗證方法完成。