一:安装FTP

//查看是否安装
rpm -q vsftpd
//安装vsftpd
yum -y install vsftpd

启动vsftpd服务

systemctl start vsftpd.service

查看vsftpd服务是否启动

systemctl statu vsftpd.service
//设置开机自动启动
systemctl enable vsftpd.service

二:关闭firevall和SELinux

//查看firewalld状态
systemctl status firewalld
//开启防火墙
systemctl start firewalld
//再次查看防火墙状态
systemctl status firewalld
//FTP服务添加到防火墙
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
setenforce 0   # 设置SELinux 成为permissive模式  (关闭SELinux)
setenforce 1   # 设置SELinux 成为enforcing模式   (开启SELinux)

//或者修改配置
vi /etc/selinux/config
//关闭SEliunx
SELINUX=disabled
//设置SELinux
getsebool -a | grep ftp
setsebool -P ftpd_full_access on

三:修改配置文件

地址:/etc/vsftpd/vsftpd.conf

//不允许匿名访问,禁用匿名登录
anonymous_enable=NO
//启用限定用户在其主目录下    
chroot_local_user=YES  
//使用本地时(自行添加)
use_localtime=YES 
chroot_list_enable=YES
//允许使用本地账号进行FTP用户登陆验证
local_enable=YES 
//如果启用了限定用户在其主目录下需要添加这个配置,解决报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES 
//启用上传和下载的日志功能,默认开启。
xferlog_enable=YES  
//设置本地用户默认文件掩码022
local_umask=022

创建用户文件

vim /etc/vsftpd/virtusers添加虚拟用户

#第一行用户名

wordpress

#第二行密码

123456

生成用户文件

//安装db(如果有不用安装)
yum  search db4
yum install-y  compat-db47.x86_64  (以你的机器为准) 
//生成db文件
db_load -T -t hash-f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
//设置权限
chmod 600/etc/vsftpd/virtusers.db

修改配置文件

//生成备份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
//添加语句和注释掉auth及account的所有配置行
auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

创建虚拟用户配置文件

//创建文件
touch wordpress
//创建用户目录
mkdir -p /home/vsftpd/test/
//添加信息(自选)
当virtual_use_local_privs=YES 时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO  时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

重启

//重启服务
systemctl restart vsftpd.service
//启动服务
systemctl start vsftpd.service
// 服务状态查看
systemctl status vsftpd.service