测试环境: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
如果重启服务后无法访问,试试添加chroot_list
[root@localhost virtual_user_cfg.d]# echo -e '\n'ftp{1..5} >> /etc/vsftpd/chroot_list
7. 启服务
[root@localhost ~]# systemctl restart vsftpd
标签:ftp,多用户,etc,virtual,vsftpd,user,root,目录,localhost From: https://www.cnblogs.com/santia-god/p/16837535.html