安装软件包
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
修改虚拟用户密码
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服务
之后再登录验证