///////////////////////////////FTP///////////////////////////////////////////////////
写在前面:
在linux 环境下,有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd
基于安全原因,vsftpd占据了主导地位
其安全性使用了chroot工具来改变根目录位置

ftp: 使用20端口传送指令
ftp-data:使用21端口数据传输

分为主动连接和被动连接两种模式
因此在搭建FTP环境时,记得考虑主动连接和被动连接的问题

其他链接:
vsftp使用mysql存放虚拟用户并验证:
http://www.aminglinux.com/bbs/thread-342-1-1.html
ftp的主动和被动模式:
http://www.aminglinux.bbs/thread-961-1-1.html

/////////////////////////////////////////////////////////////////////////////////////
目录
一、什么是ftp
二、使用pure-ftpd搭建FTP服务
三、使用vsftp搭建FTP服务

///////////////////////////////////////////////////////////////
一、什么是ftp
FTP是 File Transfer Portocol(文件传输协议)的英文简称,而中文简称为文传协议,用于Internet上的控制文件的双向传输
FTP的主要作用,就是让用户连接上一个远程的计算机(这些计算机上运行着FTP服务器程序),查看远程计算机与有哪些文件,然后把文件从远程就安吉上拷贝到本地计算机,或者把本地计算机的文件送到远程计算机去
在centos或者是RedHat Linux上有自带的ftp软件叫做vsftpd

二、使用pure-ftpd搭建FTP服务
pure-ftpd官网
http://www.pureftpd.org/project/pure-ftpd

yum install -y epel-release(否则是找不到pure-ftpd这个包的)
yum install -y pure-ftpd

执行下面一系列命令:
(其实这个是个脚本,建立用户名或者密码可以自行定义)
curl www.aminglinux.com/study_v2/.pf.c > /etc/pure-ftpd/pure-ftpd.conf
user=`mkpasswd -l 5 -s 0 -d 0 -C 0`
pass=`mkpasswd -s 0`
echo $user $pass > /tmp/ftp.pass(这是我们的用户名密码,防止自己忘掉了)
mkdir /data/ftp #创建FTP服务的目录(这是我们共享的目录)

echo -e "$pass\n$pass"|pure-pw useradd $user -u YongHu -d /data/ftp
(-u YongHu 映射YongHu用户,让他去写这个目录。其实用户可以随便一个,不过要存在这个用户)

然后
pure-pw mkdb #创建密码文件,默认在/etc/pure-ftpd/pureftpd.pdb
/etc/init.d/pure-ftpd start #启动服务

其他命令:
pure-pw list #列出用户
pure-pw userdel $user #删除账号

测试一下:
客户端上:
yum install -y lftp
lftp usernname@192.168.31.166

登陆了FTP后可以使用的命令:
下载 get filename
上传 put filename
查看帮助 help get/put/...

这个自己了解一下:
filezilla-server
filezilla-client

【这个FTP局限性:命令行操作的】
【通常情况下我们是Windows环境下的FTP】

三.使用vsftp搭建FTP服务
yum install -y vsftpd db4-utils
建立虚拟账号相关联的系统账号
useradd virftp -s /sbin/nologin
//我们创建这个和虚拟用户关联的系统用户实际上是为了让虚拟用户可以使用系统用户的身份上传下载
建立虚拟账户相关的文件
vim /etc/vsftpd/vsftpd_login
//格式如下:
//奇数行:用户名
//偶数行:密码
//缺点:是明文的,不安全
test1
123456
test2
abcdef

chmod 600 /etc/vsftpd/vsftpd_login
生成对应的库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
如果更改了用户密码(也就是vsftpd_login这个文件),需要重新db_load以及重启服务

建立虚拟账号相关的目录及配置文件
mkdir /etc/vsftpd/vsftpd_user_conf(虚拟用户的配置路径,全部都集中到这个目录下)
cd /etc/vsftpd/vsftpd_user_conf 创建和用户对应的配置文件

创建我们第一个用户名的配置文件:(要和我们vsftpd_login 的用户一致)
vi test1 //内容模板如下:
local_root=/home/virftp/test1
annoymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO(匿名上传)
anon_mkdir_write_enable=NO
idle_session_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

因为没有该目录,所以
mkdir /home/virftp/test1
修改权限:
chown -R virftp:virftp /home/virftp

更改用户认证相关的配置文件:
vim /etc/pam.d/vsftpd
//在最开头添加两行
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则
/lib64/security/pam_userdb.so
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login//如果是64位系统,则
/lib64/security/pam_userdb.so

再修改主配置文件:
vi /etc/vsftpd/vsftpd.conf

annoymous_enable=YES改为NO
anon_upload_enable=YES改为NO
anon_mkdir_write_enable=YES改为NO

local_enable=YES(本地用户可用/不可用 )
write_enable=YES
local_umask=022

再增加
chroot_local_user=YES
guest_enable=YES(如果NO,虚拟用户无法登陆)
guest_usernmae=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf33(虚拟用户的配置路径)

【chroot_local_user=YES】
【pasv_enable=YES】如果是被动连接,一定要设置为YES

启动vsftpd
/etc/vsftpd/vsftpd start 会出现启动失败(因为端口被占用了,被pure-ftpd占用了)

测试:
lftp test1@192.168.31.166
aminglinux

FTP的安装配置使用的更多相关文章

  1. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  2. CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

    CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...

  3. linux 下ftp的安装配置 图文教程

    0.安装ftp的前置条件是关掉SElinux # vi /etc/selinux/config 修改 SELINUX=” disabled ” ,重启服务器.若相同,则跳过此步骤. 1. 可先查看是否 ...

  4. Linux下ftp的安装配置

    1.查看ftp包是否可用yum list | grep vsftpd 2.安装ftpyum install vsftpd 3.启动systemctl start vsftpd 4.开机启动chkcon ...

  5. Linux防火墙iptables安装配置--使用远程工具Xmanager和ftp服务安装配置

    一.linux关闭防火墙:    a.用户直接在终端输入:service iptables stop     查看防火墙状况:service iptables status  b.root用户在终端输 ...

  6. Linux FTP的安装与配置

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  7. CentOS系统下安装配置ftp服务

    安装配置步骤: rpm -ivh /opt/bak/vsftpd-2.2.2-11.el6.x86_64.rpm --本地安装vsftpd ll /etc/vsftpd/  --查看vsftpd的配置 ...

  8. Linux FTP的安装与配置(转)

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  9. CentOS 7安装配置FTP服务器

    CentOS 7下FTP服务器的安装配置. 假设我们有以下要求 路径 权限 备注 /ftp/open 公司所有人员包括来宾均可以访问 只读 /ftp/private 仅允许Alice.Jack.Tom ...

随机推荐

  1. delphi xe----操作mongoDB驱动,TMongoWire(Delphi MongoDB Driver)

    所有例子来自:https://github.com/stijnsanders/TMongoWire Delphi MongoDB的驱动 一个Delphi的驱动程序来访问mongoDB的服务器.用jso ...

  2. 当集群为red或者yellow的时候怎么办

    百度Elasticsearch-产品描述-介绍-百度云 https://cloud.baidu.com/doc/BES/FAQ.html#.30.1B.42.A0.26.0A.6E.B7.F1.84. ...

  3. Byzantine failures

    https://baike.baidu.com/item/拜占庭将军问题/265656?fr=aladdin 拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信 ...

  4. Spring - Netty (整合)

      写在前面  ​ 大家好,我是作者尼恩.目前和几个小伙伴一起,组织了一个高并发的实战社群[疯狂创客圈].正在开始 高并发.亿级流程的 IM 聊天程序 学习和实战,此文是:   疯狂创客圈 Java ...

  5. DHTML 简介

    DHTML, 动态的 html, 不是一门语言, 是多项技术综合体的简称.其中包括了 html, CSS, DOM, javascript. HTML : 负责提供标签, 对数据进行封装,目的是便于对 ...

  6. Java HashMap工作原理及实现(转载)

    https://yikun.github.io/2015/04/01/Java-HashMap工作原理及实现/

  7. 解锁Opera浏览器新姿势:【Surf The Internet In Right Ways】

    下载Opera浏览器 官网下载:https://www.opera.com/zh-cn 更改PC系统区域 我的本子是win10,其他系统未测. 进入: 设置 → 区域和语言 将国家或地区设置为:中国台 ...

  8. docker镜像制作---jdk7+tomcat7基础镜像

    1. 安装docker rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm y ...

  9. 修改 item2 用户名

    首先在命令行输入 cd .oh-my-zsh/themes 如下图: 然后命令行输入 sudo vi agnoster.zsh-theme 如下图: 最后在编辑主题文件 在 prompt_segmen ...

  10. java.util.Calendar简介

    Calendar是一个抽象类,我们无法直接实例化它,它有一个具体子类实体类java.util.GregorianCalendar,这个类实现的就是我们日常所用的公历历法,或者叫做阳历.我们可以直接使用 ...