rpm
vsftpd-2.2.2-21.el6.x86_64.rpm
ftp-0.17-54.el6.x86_64.rpm

1.安装vsftpd、db_load,省略
centos7执行:
yum install -y vsftpd
systemctl daemon-reload

2.在一个目录创建一个用户名密码文件,比如
vim account.txt #输入用户名密码奇数行是用户名、偶数行是密码
yum
rxhz1004

3.生成db文件
db_load -T -t hash -f /etc/vsftpd/account.txt /etc/vsftpd/account.db

4.修改权限
chmod 600 /etc/vsftpd/account.db

5.配置pam文件
vim /etc/pam.d/vsftpd.v #输入以下配置
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account

后来登录ftp出现530错误,需要把上面两行改为:可能是跟64位系统有关

auth required pam_userdb.so db=/etc/vsftpd/account
account required pam_userdb.so db=/etc/vsftpd/account

--6.创建虚拟用户
useradd virtual_user -d /home/ftpdata -s /sbin/nologin
指定home目录,-s设置成不可登录系统的用户

修改目录权限chown -R virtual_user.virtual_user /home/ftpdata/feiyan
修改目录权限chmod 777 /home/Centos.yum

7.修改vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf

listen_port=21
ftp_data_port=20

listen_data_port_20=8080

pasv_enable=YES
pasv_min_port=20
pasv_max_port=20

如果ftp发布到外网添加下面的参数,可解决某些单片机ftp模块 opereation error的问题,如果还有问题请取消虚拟用户模式虽然不安全,但没有办法
pasv_addr_resolve=YES
pasv_address=www.xxx.cn #你的域名或者ip

guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftpd.v
user_config_dir=/etc/vsftpd/user_conf
chroot_local_user=YES
allow_writeable_chroot=YES
use_localtime=YES

8.创建用户配置文件

mkdir /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/feiyan #给全部权限,限定根目录
local_root=/home/ftpdata/feiyan
write_enable=YES
virtual_use_local_privs=YES

10.重启vsftpd
service vsftpd restart