安装软件包

yum -y install vsftpd

修改配置文件

anonymous_enable=NO    #匿名登录NO为不开启
local_enable=YES         #虚拟用户登录YES为开启
write_enable=YES         #写操作YES为开启
local_umask=022         #设置文件权限掩码 文件为644 文件夹为755
dirmessage_enable=YES    #设置目录开启标语
xferlog_enable=YES        #设置日志记录功能
connect_from_port_20=YES  #设定端口20进行数据连接
xferlog_std_format=YES     #设置日志使用标准日志格式
nopriv_user=vsftpd         
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=NO     #限制所有用户在主目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO          #开启独立进程vsftpd,不使用超级进程xinetd。设定该Vsftpd服务工作在StandAlone模式下
listen_ipv6=YES
pam_service_name=vsftpd  #设定,启用pam认证,并指定认证文件名/etc/pam.d/vsftpd
userlist_enable=NO        #定userlist_file中的用户将不得使用FTP     
tcp_wrappers=YES       #设定支持TCP Wrappers
guest_enable=YES       #设定启用虚拟用户功能
guest_username=vsftpd   #指定虚拟用户的宿主用户
userlist_file=/etc/vsftpd/user_list  #user用户列表
userlist_deny=YES              #拒绝user用户列表登录
user_sub_token=$USER
local_root=/home/ftp           #虚拟用户家目录
allow_writeable_chroot=YES      #允许写入
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
virtual_use_local_privs=YES   #设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf   #虚拟用户配置文件存放目录

创建虚拟用户账号文本

vi /etc/vsftpd/user_login.txt
test1       #虚拟用户test1
test123    #虚拟用户test1密码
test2      #虚拟用户test2
test345    #虚拟用户test2密码

创建虚拟用户配置文件

注意路径必须与vsftpd.conf中指定的路径一致(user_config_dir=/etc/vsftpd/vconf本次写的路径为/etc/vsftpd/vconf)并且与虚拟账号文本中的账号名称保持一致(/etc/vsftpd/user_login.txt此文本的账号保持一致)

虚拟用户test1

vi /etc/vsftpd/vconf/test1
local_root=/home/ftp/test1   #指定虚拟用户目录路径
write_enable=YES           #允许写入
anon_umask=000           #上传文件权限掩码
anon_world_readable_only=NO #不允许匿名用户只读
anon_upload_enable=YES      #允许匿名用户上传
anon_mkdir_write_enable=YES  #允许匿名用户创建目录
anon_other_write_enable=YES  

虚拟用户test2

vi /etc/vsftpd/vconf/test2
local_root=/home/ftp/test2   #指定虚拟用户目录路径
write_enable=YES           #允许写入
anon_umask=000           #上传文件权限掩码
anon_world_readable_only=NO #不允许匿名用户只读
anon_upload_enable=YES      #允许匿名用户上传
anon_mkdir_write_enable=YES  #允许匿名用户创建目录
anon_other_write_enable=YES 

对账号密码文本进行创建数据库文本

需要安装libdb-utils

yum -y install libdb-utils

生成数据库文件

dbload -T -t hash -f /etc/vsftpd/suer_login.txt  /etc/vsftpd/vsftpd_login.db

授权该文本权限为600

chmod 600 /etc/vsftpd/vsftpd_login.db

创建虚拟家目录

mkdir -p /home/ftp/test1
mkdir -p /home/ftp/test2

启动vsftpd服务

systemctl start vsftpd
systemctl enable vsftpd

登录验证

ftp localhost
提示输入用户:test1
密码:test123

image-1676616443670

修改虚拟用户密码

vi /etc/vsftpd/user_login.txt
test1       #虚拟用户test1
aaabbbccc   #虚拟用户test1修改后的密码 原有密码为test123
test2
test345

执行db_load生成数据库文本

db_load -T -t hash -f /etc/vsftpd/user_login.txt /etc/vsftpd/vsftpd_login.db
修改完后不需要重启vsftpd服务
之后再登录验证

image-1676616533602