基于Centos7搭建vsftpd服务(虚拟用户)

安装vsftpd

  • 检查是否安装了vsftpd
# rpm -q vsftpd

这里写图片描述

  • 如果没有找到,安装vsftpd
# yum install -y vsftpd

基于Centos7搭建vsftpd服务(虚拟用户)_第1张图片

  • 安装完成后在检查一次
# whereis vsftpd

这里写图片描述

启动ftp服务

  • 查看vsftpd服务的状态
# systemctl status vsftpd.service

这里写图片描述

  • 启动vsftpd服务并查看状态
# systemctl start vsftpd.service
# systemctl status vsftpd.service

基于Centos7搭建vsftpd服务(虚拟用户)_第2张图片

  • 设置vsftpd服务开机自启
# systemctl enable vsftpd.service

这里写图片描述

创建ftp的用户

新建vsftpd系统用户

  • 新建vsftpd用户并指定用户路径/home/vsftpd 禁止登陆
# useradd vsftpd -d /home/vsftpd -s /bin/false

新建虚拟用户

  • 创建虚拟用户主目录,比如虚拟用户叫ftptest,执行下面的命令。
# mkdir -p /home/vsftpd/ftptest
# chown vsftpd:vsftpd /home/vsftpd/ftptest
  • 创建虚拟用户,用户/密码:ftptest/ftp123
# vi /etc/vsftpd/loginusers.conf
ftptest
ftp123

这样就增加了用户名为ftptest密码为ftp123的用户(单数行为账户,双数行为密码)

  • 根据文件生成虚拟用户数据库并授权
# db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.db
# chmod 600 /etc/vsftpd/loginusers.db
  • 启用这个数据库文件
# vi /etc/pam.d/vsftpd
auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers

注:注释掉文件中所有内容,粘贴以上两行内容(如32位系统,则需要把lib64改为lib)

  • 创建虚拟用户配置文件
# mkdir /etc/vsftpd/userconf
# cd /etc/vsftpd/userconf
# touch ftptest
  • 编辑ftptest虚拟用户配置
# vi /etc/vsftpd/userconf/ftptest

local_root=/home/vsftpd/ftptest/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

设定主目录为/home/vsftpd/ftptest/,具有读、写、创建、其他等权限

修改主配置vsftpd.conf文件

备份配置文件(避免出现意外时恢复)

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

修改配置文件

  • 编辑vsftpd.conf文件
# vi /etc/vsftpd/vsftpd.conf
  • 找到文件中内容修改,找不到的新增
保存编辑后的文件
:wq

配置完成,重启ftp服务使配置生效

# systemctl restart vsftpd.service

防火墙配置(防火墙关闭的可忽略)

  • 允许访问ftp
# firewall-cmd --permanent --zone=public --add-service=ftp
# firewall-cmd --reload
  • 连接到ftp后,如无法查看ftp home目录下的文件或者文件夹
# getsebool -a | grep ftp
# setsebool -P ftpd_full_access on

你可能感兴趣的:(linux学习)