linux搭建ftp服务器,并用虚拟用户上传下载
配置信息:
CentOS Linux release 7.5.1804 (Core)
vsftpd: version 3.0.2
第一步:安装vsftpd服务器
yum install vsftpd
第二步:修改配置文件/etc/vsftpd/vsftpd.conf 。我的配置文件如下
| anonymous_enable=NO |
第三步:创建虚拟用户
1.编写用户账号密码数据文件(奇数行为用户名,偶数行为密码)

2.执行命令生产db文件:
db_load -T -t hash -f vsftpd_login vsftpd_login.db
第四步:编写虚拟用户权限文件
在vsftp配置文件中的user_config_dir=/etc/vsftpd/vus目录下创建一个以用户名为文件名的文件。如deploy用户,文件名为/etc/vsftpd/vus/deploy,内容如下
| local_root=/data/ftp-deploy write_enable=YES download_enable=YES anon_upload_enable=YES anon_world_readable_only=NO anon_other_write_enable=YES anon_mkdir_write_enable=YES |
配置解析:
local_root 用户的目录
anon_world_readable_only 允许匿名登入者下载可阅读的档案
anon_mkdir_write_enable 允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此处设置为NO为了测试。
anon_upload_enable 允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时
anon_other_write_enable 允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名
第五步:配置pam.d目录下vsftpd控制文件(/etc/pam.d/vsftpd)
注销掉原来的所有,增加下面两行配置(红色路径指向刚刚生成的db文件,不需要带db后缀)
| auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login |
修改后如下图:

第六步:重启vsftp,完成搭建。
systemctl restart vsftpd