一、查看安装版本,并卸载
1.查看版本
rpm -qa |grep vsftp
2.卸载指定版本
rpm -e vsftpd-3.0.2-27.el7.x86_64
3.删除用户
userdel vsftpd
4.删除用户邮箱
rm -rf /var/spool/mail/vsftpd
二、安装
yum -y install vsftpd
三、设置开机自动启动和查看状态
1.常用指令4连发
systemctl enable vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service
systemctl restart vsftpd.service
四、配置vsftpd
1.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
2.按INSERT进入编辑模式,设置显示行号
:set number
3.修改配置如下,然后:wq保存退出
#修改配置 12 行
anonymous_enable=NO
#修改配置 33 行
anon_mkdir_write_enable=YES
#修改配置48行
chown_uploads=YES
#修改配置72行
async_abor_enable=YES
#修改配置83行
ascii_upload_enable=YES
#修改配置84行
ascii_download_enable=YES
#修改配置87行
ftpd_banner=Welcome to blah FTP service.
#修改配置101行
chroot_local_user=YES
#添加下列内容到vsftpd.conf末尾
use_localtime=YES
listen_port=21
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=40000
pasv_max_port=40010
accept_timeout=5
connect_timeout=1
allow_writeable_chroot=YES
五、配置vsftpd账户
1.编辑用户文件
vim /etc/vsftpd/virtusers
2.填写账户密码,第一行为账户,第二行为密码,创建完成后保存退出
goapp
123456
3.生成用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
4.设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/virtusers.db
六、修改 /etc/pam.d/vsftpd 文件
vi /etc/pam.d/vsftpd
先将配置文件中原有的 auth 及 account 的所有配置行均注释掉后,加入以下配置
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
七、创建系统用户vsftpd
1.注意下面的vsftpd不要更改,这是系统用户,文件路径(/data/website)可自行修改
设为/bin/false(即:使之不能登录系统)
useradd vsftpd -d /data/website -s /bin/false
chown -R vsftpd:vsftpd /data/website
2.更改目录的权限
chmod -R 777 /data/website
八、建立虚拟用户个人配置文件
1.创建文件夹
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
2.编辑用户,即前面步骤五 创建的用户名
vi /etc/vsftpd/vconf/goapp
3.复制一下配置
local_root=/data/website/goapp
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
给用户创建一个文件夹
mkdir -p /data/website/goapp
给文件夹设置权限
chmod -R 775 /data/website/goapp
九、重启下服务
systemctl restart vsftpd.service
systemctl status vsftpd.service
十、检查并关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
用FTP连接测试,可以用FileZilla等软件测试
常见问题处理方式:
1.如果发现ftp无法连接,在服务可通过指令查看异常日志tail /var/log/secure
2.最后注意下服务器21端口是否开放(比如阿里云安全组设置),FileZilla可以设置为主动模式