FTP就是文件传输协议,主要作数据上传 数据下载。linux
FTP两种模式:
主动模式服务器向客户端敲门,而后客户端开门
被动模式客户端向服务器敲门,而后服务器开门算法
传输模式:能够是文本模式,也能够是二进制模式,二进制模式更适合传输图片等非文本字符的文件数据库
匿名用户:不须要输入用户(多人共享一个)
本地用户:本地的Linux登录用户(每一个共享用户的家目录)
虚拟用户:不一样于本地用户,能够建立一个匿名用户的FTP,跟Linux没有关系vim
首先查看服务端有没有vsftpd命令,没有则须要yum安装一下
安全
yum装完vsftpd天然就有/var/ftp/pub的共享目录
服务器
属主是root别的用户没有办法读写,因此须要把pub属主换成ftp,ftp程序用户系统默认就有
安装完vsftpd天然就有/etc/vsftpd/vsftpd.conf:ftp配置文件,为了安全先备份一份
ide
vim打开ftp配置文件,配置以下
测试
服务端ftp配置完成后启动ftp服务,启动完成后检查一下是否成功
ui
由于服务端共享目录里没有文件,因此先建立一个
加密
客户端只须要安装ftp命令就能够
ftp客户端登录服务端,匿名用户名就是ftp,没有密码为空,因此直接回车
ls看一下当前,看到了pub,cd进去看到了sl 天然就证实了我已经链接到了服务端
ftp有不少命令跟linux不同,因此须要help查看一下
在ftp里get表明下载,你当前在哪一个目录登录ftp就下载到哪一个目录
在ftp里put表明上传命令,也只能上传客户端当前目录里的文件,不能是绝对路径上传
首先先将配置完成后的匿名用户备份,在把初始的配置文件复制回来
由于是ftp本地用户搭建因此把匿名关闭,在把第96行的本地用户家目录取消注释并开启
由于是ftp本地用户服务因此须要先建立一个普通用户和密码用客户端ftp登录服务端输入yunjisuan帐号和密码
刚建立用户家目录没有任何东西,全部在服务端yunjisuan用户建立一个文件
在客户端ftp服务里ls看到了建立的新文件
/etc/vsftpd/ftpusers:FTP给用户加黑名单,优先级高于/etc/vsftpd/user_list能够经过配置文件将此修改成白名单
首先须要把ftp本地用户服务备份,在把源配置文件复制回来
先查看系统是否有db_load命令,没有则须要安装ftp虚拟用户首先须要在/etc/vsftpd下建立密码文件
建立完密码文件须要弄db_load命令转换成数据文件,-T容许非程序使用该数据库 -t指定算法 hash -f表明加密,由于是密码,为了增长安全性须要给chmod 600 vusers.db权限
首先建立虚拟映射帐号,由于指定了家目录因此给手动建立一个家目录并赋上755权限
手动创建此pam认证文件以下
首先把匿名用户关闭
把最下面配置文件
改为这样
配置完重启服务,就能够用客户端进行ftp登录,由于是指定建立的家目录,因此须要去/var/ftproot建立点文件
ftp客户端登录服务端,输入手动建立的虚拟帐号密码,就能够看到刚才在服务端家目录建立的文件
由于刚才建立了2个帐号密码,因此用第二个帐号登录,也看到了指定的服务端家目录文件
实现每一个虚拟用户不一样根目录,不一样权限的管控,首先在/etc/vsftpd建立mkdir /vusers.dir目录,建立完进入目录touch 虚拟帐号里的名字
vim手动打开/etc/vsftpd/vusers.dir/虚拟帐号名
配置完手动mkdir -p /var/虚拟帐号名,chown virtual /var/虚拟帐号名:把帐号属主换成virtual有读写权限
最后须要在/etc/vsftpd/vsftpd.conf手动填写
重启服务/etc/init.d/vsftpd reload后进入测试环境,手动在服务端家目录建立个文件
在客户端ftp登录虚拟用户,文件正好是在服务端配置文件目录建立的文件