安装vsftpd

yum install -y vsftpd

vi /etc/vsftpd/vsftpd.conf

=========start===========

---------允使用被动模式---------

pasv_enable=YES
# 指定使用被动模式时打开端口的最小值
pasv_min_port=10060
# 指定使用被动模式时打开端口的最大值。
pasv_max_port=10090
# 用户宽带限制200kps
#local_max_rate=200000
# 登录后欢迎内容
ftpd_banner=Welcome to My FTP service.

---------开启虚拟用户组参数---------

# 开启虚拟用户
guest_enable=YES
# 宿主用户
guest_username=vsftpd
# 虚拟用户配置(可以对每一个虚拟用户进行单独的权限配置)
user_config_dir=/etc/vsftpd/vconf

---------虚拟用户高级参数---------

# 虚拟用户具有写权限(上传、下载、删除、重命名)
virtual_use_local_privs=YES
write_enable=YES

=======end===========

新建宿主用户

# 假如宿主用户为 vsftpd
useradd -s /sbin/nologin vsftpd

建立虚拟用户账号列表

# 编辑虚拟用户名单文件:
#(第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)
vi /etc/vsftpd/virtusers
# 编辑内容,下面是 virtusers 内容
test
123456

# 添加到chroot管理列表
vi /etc/vsftpd/chroot_list
# 用户列表
# 空

利用db_load命令生成数据文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
# 设定PAM验证文件,并指定对虚拟用户数据库文件进行读取(权限r,w即可)
chmod 600 /etc/vsftpd/virtusers.db

添加vsftpd的虚拟用户的验证

vi /etc/pam.d/vsftpd
# -------------追加内容如下-----------------
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

创建虚拟用户个人配置文件

# 建立虚拟用户个人vsftp的配置文件
mkdir -p /etc/vsftpd/vconf
# 进入目录
cd /etc/vsftpd/vconf

# 创建并编辑用户的配置文件
vi test

# 用户 test 配置目录
local_root=/home/vsftpd/test
# 允许本地用户对FTP服务器文件具有写权限
write_enable=YES

#匿名用户
anon_world_readable_only=NO
# 允许匿名用户上传文件(须将全局的write_enable=YES,默认YES)
anon_upload_enable=NO
# 允许匿名用户创建目录
anon_mkdir_write_enable=NO
# 允许匿名用户删除和重命名权限(自行添加)
anon_other_write_enable=NO

=====================================

# 创建用户目录
mkdir -p /home/vsftpd/test

服务操作

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