CentOS7 搭建 多账号FTP

ftp?还有人用?

其实在没有出来跑以前也觉得FTP应该死绝了,在上海各个比较可以的互联网公司,听到研发用FTP不说都鄙视吧,至少很多人认为没技术追求。但是我不得不说,在研发人员眼里觉得很Low的工具,在非专业人员眼里。

需求来源方是:在互联网公司都会有设计或者前端,有很多公司其实只做单页面的,根本不需要什么后端人员。让设计或者前端学习Git 必要性不大,FTP又是一个交互非常有好的GUI工具服务,导致这种需求还是很旺盛的

需求

  1. 每个人元要有单独的账号

  2. 不同账号可能允许访问的目录不一样

  3. 记录操作日志

配置环境

安装vsftp

#安装
yum install -y vsftpd

#设置开机启动
systemctl enable vsftpd.service

命令讲解

#启动
systemctl start vsftpd.service

#停止
systemctl stop vsftpd.service

#查看状态
systemctl status vsftpd.service

配置

文件路径:/etc/vsftpd/vsftpd.conf

# 增加如下内容

# 虚拟用户配置
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/vuser_conf
allow_writeable_chroot=YES
pasv_min_port=5000

注解:guest_username 你期望用户已哪个用户进行数据提交,也就是用户提交上来的数据权限是哪个用户的,例如我这里是 www ,所以一定要保证系统存在www这个用户,如果不存在请新建一个

用户设置

创建用户

创建用户文件:/etc/vsftpd/vuser 

## 结构是两行,一行用户名 另一个密码 例如如下
guowei
123456
jixuejima
123456789

注解:上面我添加了两个虚拟用户:guowei (密码123456)和 jixuejima (密码123456789)。

生成用户数据

db_load -T -t hash -f /etc/vsftpd/vuser  /etc/vsftpd/vuser.db

#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/vuser.db

设置PAM

路径:/etc/pam.d/vsftpd

## 内容全部替换为如下

#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

注解:其实就是配置读取和验证的配置文件路径,就是前面我们生产的用户数据

建立虚拟用户配置文件

## 新建虚拟用户配置目录
mkdir /etc/vsftpd/vuser_conf

## 新建虚拟用户配置
cd /etc/vsftpd/vuser_conf
vim guowei

##写如下内容
local_root=/data/www
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

注解:

  • 可以看到我们新建的目录 就是 在上面 /etc/vsftpd/vsftpd.conf 中配置的 user_config_dir。 

  • /etc/vsftp/vuser 中配置的用户都要在上面的目录中 新建一个 以  用户名 为名称的文件,上面示例就是新建了一个 guowei 文件

  • local_root 表示用户通过ftp 软件登录进去的更目录,必须保证存在


客户端软件推荐

  • FileZilla

  • FlashFXP

效果展示

搞定收工,上图上成果 


600

日志记录设置

#日志配置
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log


600