测试环境:centos7

1. 装包与卸载

yum -y install vsftpd
yum -y autoremove vsftpd&&rm -rf /etc/vsftpd /etc/pam.d/vsftpd.rpmsave

2. 用户清单配置

/etc/vsftpd/ftpusers   #黑名单:拒绝用户清单
/etc/vsftpd/user_list  #白名单:允许用户清单
[root@localhost ~]# echo userlist_deny=NO >> /etc/vsftpd/vsftpd.conf
[root@localhost ~]# grep  userlist /etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=NO
[root@localhost vsftpd]# grep deny user_list
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file
[root@localhost ~]# echo -e myftp '\n'ftp{1..5} >> /etc/vsftpd/user_list
[root@localhost ~]# cat > /etc/vsftpd/virtual_user_list.conf << EOF
ftp1
ftp1passwd
ftp2
ftp2passwd
ftp3
ftp3passwd
ftp4
ftp4passwd
ftp5
ftp5passwd
EOF

3. 添加用户

[root@localhost ~]# useradd vsftpd01 -d /home/vsftpd -s /bin/false
[root@localhost ~]# mkdir /home/vsftpd/ftp{1..5}
[root@localhost ~]# chown -R vsftpd01.vsftpd01 /home/vsftpd/
[root@localhost ~]# chmod -R 700 /home/vsftpd/
[root@localhost ~]# chmod 600 /home/vsftpd/
[root@localhost ~]# 

 

4. 修改pam文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/virtual_user_list.conf /etc/vsftpd/virtual_user_list.db
[root@localhost ~]# chmod 600 /etc/vsftpd/virtual_user_list.db 
[root@localhost ~]# cat > /etc/pam.d/vsftpd << EOF
auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list    
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list 
EOF
[root@localhost ~]# 

5. 创建虚拟用户配置文件

配置说明:
//设置FTP账号根目录,指定用户访问
local_root=/home/vsftpd/ftp/
//允许写入权限,包括修改
write_enable=YES
//允许匿名用户浏览,下载文件
anon_world_readable_only=NO
//允许匿名用户上传
anon_upload_enable=YES
//允许匿名用户上传/建立目录
anon_mkdir_write_enable=YES
//允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
anon_other_write_enable=YES

[root@localhost ~]# mkdir /etc/vsftpd/virtual_user_cfg.d/
[root@localhost virtual_user_cfg.d]# cat > /etc/vsftpd/virtual_user_cfg.d/ftp1 << EOF
local_root=/home/vsftpd/ftp1/
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

。
。
。

[root@localhost virtual_user_cfg.d]# cat > /etc/vsftpd/virtual_user_cfg.d/ftp5 << EOF
local_root=/home/vsftpd/ftp5/
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

6. 调整主配文件

anonymous_enable=NO 禁止匿名用户登录
chroot_local_user=YES 禁止用户访问除主目录以外的目录
ascii_upload_enable=YES  设定支持ASCII模式的上传功能
ascii_download_enable=YES 设定支持ASCII模式的下载功能
guest_enable=YES 启动虚拟用户
guest_username=vsftpd01 虚拟用户使用的系统用户名
user_config_dir=/etc/vsftpd/virtual_user_cfg.d/ 虚拟用户使用的配置文件目录
allow_writeable_chroot=YES 最新版的vsftpd为了安全必须用户主目录没有写权限,才能登录,或者使用allow_writeable_chroot=YES

[root@localhost virtual_user_cfg.d]# sed -i 's/^chroot_/#chroot_/' /etc/vsftpd/vsftpd.conf
[root@localhost virtual_user_cfg.d]# sed -i 's/^anon/#anon/g' /etc/vsftpd/vsftpd.conf
[root@localhost virtual_user_cfg.d]# sed -i 's/^ascii_/#ascii_/g' /etc/vsftpd/vsftpd.conf
[root@localhost virtual_user_cfg.d]# cat >> /etc/vsftpd/vsftpd.conf << EOF
anonymous_enable=NO
chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES
guest_enable=YES
guest_username=vsftpd01
user_config_dir=/etc/vsftpd/virtual_user_cfg.d/
allow_writeable_chroot=YES
EOF
[root@localhost virtual_user_cfg.d]# 

7. 启服务

[root@localhost ~]# systemctl restart vsftpd

 

原文地址:http://www.cnblogs.com/santia-god/p/16837535.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性