vsftpd安装

yum安装

yum install vsftpd -y

配置备份

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
tee /etc/vsftpd/vsftpd.conf <<-EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
local_umask=022
anon_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
user_config_dir=/etc/vsftpd/vusers_dir
EOF

配置用户

cd /etc/vsftpd/ && tee vuser.list <<-EOF
yourusername
yourpassword
EOF
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -f vuser.list
# 设置权限
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
tee yourusername <<-EOF
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

创建用户关联的系统用户

# 创建系统用户
useradd -d /data/ftpdir -s /sbin/nologin virtual
ls -ld /var/ftpdir/
chmod -Rf 755 /var/ftpdir/
# 系统用户与虚拟用户关联
tee /etc/pam.d/vsftpd.vu <<-EOF
auth       required     pam_userdb.so db=/etc/vsftpd/vuser
account    required     pam_userdb.so db=/etc/vsftpd/vuser
EOF

配置防火墙

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

启动用户

# 重启
systemctl restart vsftpd
# 开机自启
systemctl enable vsftpd