安装vsftpd
yum install vsftpd* -y
查看vsftpd安装后的配置文件路径、启动Vsftpd服务及查看进程是否启动
rpm -ql vsftpd|more
systemctl restart vsftpd.service
ps -ef |grep vsftpd
1.安装Vsftpd虚拟用户需用到的软件及认证模块:
yum install pam libdb-utils libdb --skip-broken -y
2.创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,新建虚拟用户和密码,其中test001 test002为虚拟用户名,123456为密码,如果有多个用户,依次格式填写即可:
test001
123456
test002
123456
3.生成Vsftpd虚拟用户数据库认证文件,设置权限700:
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db
4.配置PAM认证文件,/etc/pam.d/vsftpd行首加入如下两行:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
5.所有Vsftpd虚拟用户需要映射到一个系统用户,该系统用户不需要密码,也不需要登录,主要用于虚拟用户映射使用,创建命令如下:
useradd -s /sbin/nologin -d /home/wwwroot/ ftpuser
6.完整vsftpd.conf配置文件代码如下:
#global config Vsftpd 2017
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES
#config virtual user FTP
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
如上Vsftpd虚拟用户配置文件参数详解:
#config virtual user FTP
pam_service_name=vsftpd 虚拟用户启用pam认证;
guest_enable=YES 启用虚拟用户;
guest_username=ftpuser 映射虚拟用户至系统用户ftpuser;
user_config_dir=/etc/vsftpd/vsftpd_user_conf 设置虚拟用户配置文件所在的目录;
virtual_use_local_privs=YES 虚拟用户使用与本地用户相同的权限。
7. 至此,所有虚拟用户共同基于/home/ftpuser主目录实现文件上传与下载,可以在/etc/vsftpd/vsftpd_user_conf目录创建虚拟用户各自的配置文件,创建虚拟用户配置文件主目录:
mkdir -p /etc/vsftpd/vsftpd_user_conf/
(8) 如下分别为虚拟用户test001、test002用户创建配置文件:
/etc/vsftpd/vsftpd_user_conf/test001,同时创建私有的虚拟目录,代码如下:
local_root=/home/ftpuser/test001
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
/etc/vsftpd/vsftpd_user_conf/test002,同时创建私有的虚拟目录,代码如下:
local_root=/home/ftpuser/test002
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
虚拟用户配置文件内容详解:
local_root=/home/ftpuser/test002 test002虚拟用户配置文件路径;
write_enable=YES 允许登陆用户有写权限;
anon_world_readable_only=YES 允许匿名用户下载,然后读取文件;
anon_upload_enable=YES 允许匿名用户上传文件,只有在write_enable=YES时该参数才生效;
anon_mkdir_write_enable=YES 允许匿名用户创建目录,只有在write_enable=YES时该参数才生效;
anon_other_write_enable=YES 允许匿名用户其他权限,例如删除、重命名等。
9.创建虚拟用户各自虚拟目录:
mkdir -p /home/ftpuser/{test001,test002}
chown -R ftpuser:ftpuser /home/ftpuser