基于数据库文件#vim /etc/pam.d/vsftpd.db也可以实现安全加密创建用户,缺点是每次创建都需要重新编写#vim /etc/pam.d/vsftpd.db并使用db_load进行加密重启服务生效,不是很方便。使用数据库MYSQL作为后端存储用户密码,就可以很好解决这个问题。并且很方便进行后期维护创建删除,无需重启vsftpd,可以批量创建用户很方便。
利用 pam_mysql 模块可以实现基于MySQL的FTP虚拟用户功能
1.安装mysql
#注意:MySQL8.0由于取消了PASSWORD()函数,不支持
[root@centos7 ~]#yum -y install mariadb-server
[root@centos7 ~]#systemctl enable --now mariadb.service
MariaDB [(none)]> select password("centos");
2 在数据库服务上配置数据库支持vsftpd服务
#建立存储虚拟用户数据库和表
[root@centos7 ~]#mysql
mysql> CREATE DATABASE vsftpd;
mysql> USE vsftpd;
mysql> CREATE TABLE users ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name CHAR(50) BINARY NOT NULL,password CHAR(48) BINARY NOT NULL );
#添加虚拟用户,为了安全应该使用PASSWORD函数加密其密码后存储
mysql> INSERT INTO users(name,password) valu