一:安装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