环境:2台服务器
1.FTP服务器
2.数据库服务器
数据库服务器
安装数据库
yum –y install mariadb-server
systemctl start mariadb.service
systemctl enable mariadb
编译安装pam_mysql
yum -y groupinstall "Development Tools"
yum -y install mariadb-devel pam-devel vsftpd
github:https://github.com/NigelCunningham/pam-MySQL
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure --with-pam-mods-dir=/lib64/security/
make && make install
在数据库服务器上创建虚拟用户账号
mysql> CREATE DATABASE vsftpd;
mysql> SHOW DATABASES;
mysql> GRANT SELECT ON vsftpd.* TO
vsftpd@'192.168.45.%' IDENTIFIED BY '密码';
mysql> USE vsftpd;
Mysql> SHOW TABLES;
mysql> CREATE TABLE users (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL
);
mysql>DESC users;
测试链接
mysql -uvsftpd -h mysqlserver -p密码
mysql> SHOW DATABASES;
添加虚拟用户
mysql> DESC users;
mysql> INSERT INTO users(name,password) values(‘wang',password('密码'));
mysql> INSERT INTO users(name,password) values(‘mage',password('密码'));
mysql> SELECT * FROM users;
FTP服务器
在FTP服务器上配置vsftpd服务
vim /etc/pam.d/vsftpd.mysql
添加如下两行
auth required pam_mysql.so user=vsftpd passwd=密码 host=192.168.45.129 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=密码 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password()函数加密,3表示md5加密,4表示sha1加密
安装vsftp
yum install vsftpd
创建用户
useradd -d /data/ftproot -s /sbin/nologin vuser
chmod 555 /data/ftproot
mkdir /data/ftproot/upload
setfacl -m u:vuser:rwx /data/ftproot/upload
修改配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers.d/
启动vsftpd服务
service vsftpd start;systemctl start vsftpd
chkconfig vsftpd on;systemctl enable vsftpd
在FTP服务器上配置虚拟用户具有不同的访问权限
mkdir /etc/vsftpd/vusers.d/
vim /etc/vsftpd/vusers.d/ftpuser1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim /etc/vsftpd/vusers.d/ftpuser2
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
登录后默认目录
local_root=/data/ftproot2
配置ftpuser2目录
mkdir /data/ftproot2
chmod 555 /data/ftproot2
mkdir /data/ftproot2/upload
setfacl -m u:vuser:rwx /data/ftproot2/upload