1.环境要求

系统版本:CentOS-6.4-i386

  源码包:vsftpd-3.0.2.tar.gz

源码包下载地址:http://pan.baidu.com/s/1iWmdA

2.步骤

查看组包。yum具体使用及配置,参见《CentOS下怎样配置本地源》

ftp服务器源码详细安装过程_CentOS

需要两个特别重要的组包.

Additional DevelopmentDevelopment tools

ftp服务器源码详细安装过程_vsftpd_02

本机已经安装,如果未安装,使用以下命令安装。

ftp服务器源码详细安装过程_vsftpd_03

上传需要使用的源码包。如果你的机器中已经安装了vsftp,建议先卸载,再安装源码。

ftp服务器源码详细安装过程_CentOS_04

解压该源码包,到指定位置。

ftp服务器源码详细安装过程_vsftpd_05

切换到该指定位置。里面有INSTALL文件,其实这个INSTALL文件就是详细的安装步骤,只要按照这个文件中的步骤,就能成功安装ftp服务器。我们就按照INSTALL文档步骤,第一步要编辑builddefs.h的文件。

ftp服务器源码详细安装过程_vsftpd_06

编辑builddefs.h文件

ftp服务器源码详细安装过程_源码_07

将TCPWRAPPERS这一项的undef修改为define就OK了。

ftp服务器源码详细安装过程_vsftpd_08

执行安装。

ftp服务器源码详细安装过程_CentOS_09

出现错误,根据错误提示,是tcpwrap的问题。

ftp服务器源码详细安装过程_CentOS_10

利用本地源搜索下关于wrap的软件包。并安装tcp_wrappers-devel的包。

ftp服务器源码详细安装过程_vsftpd_11

安装完成后,清除下刚才安装的缓存,重新安装。

ftp服务器源码详细安装过程_vsftpd_12

完成后根据INSTALL文档的提示,创建nobody用户。创建后提示用户已存在。

ftp服务器源码详细安装过程_CentOS_13

搜索下nobody用户,确实已经存在。

ftp服务器源码详细安装过程_CentOS_14

接着按照文档提示,新建一个空目录,也已存在。

ftp服务器源码详细安装过程_vsftpd_15

接着,创建ftp用户的家目录。并且添加到该用户,也已存在。

ftp服务器源码详细安装过程_安装_16

搜索下,ftp用户已存在,且家目录也正确。

ftp服务器源码详细安装过程_安装_17

接着,对该目录改变所有者和所属组都为管理员,并且把写的权限去掉(不让其他人随意向ftp中写东西哦)。

ftp服务器源码详细安装过程_vsftpd_18

执行安装。

ftp服务器源码详细安装过程_安装_19

安装成功后,vsftpd存在了,且man8和man5手册都已创建。

ftp服务器源码详细安装过程_CentOS_20

再次根据INSTALL文档的提示,将配置文件拷贝到/etc下。

ftp服务器源码详细安装过程_安装_21

开始执行vsftpd服务。(&:在后台运行。)

ftp服务器源码详细安装过程_源码_22

查看21端口,已开启。

ftp服务器源码详细安装过程_源码_23

用本机测试下,但是lftp和ftp都打不开,缺少指令。

ftp服务器源码详细安装过程_vsftpd_24

利用本地源搜索下这两个命令的包。

ftp服务器源码详细安装过程_vsftpd_25

安装这两个命令。

ftp服务器源码详细安装过程_安装_26

再次访问下。可以匿名登录了,密码为空。

ftp服务器源码详细安装过程_vsftpd_27

在/var/ftp下建立一个pub文件夹。

ftp服务器源码详细安装过程_CentOS_28

再次匿名访问,pub存在。lftp直接可以以匿名身份登录。

ftp服务器源码详细安装过程_vsftpd_29

添加一个本地用户user1,并设置相应口令。

ftp服务器源码详细安装过程_CentOS_30

再次访问,用本地用户user1登录,提示失败。

ftp服务器源码详细安装过程_源码_31

根据INSTALL文档提示,拷贝接口文件。

ftp服务器源码详细安装过程_源码_32

并且编辑/etc下的配置文件。

ftp服务器源码详细安装过程_安装_33

将第15行的本地账号登录的注释去掉。

ftp服务器源码详细安装过程_CentOS_34

由于修改了配置文件,杀死ftp进程,重新启动。

ftp服务器源码详细安装过程_vsftpd_35

ftp服务器源码详细安装过程_vsftpd_36

重新测试,user1成功登录进去。

ftp服务器源码详细安装过程_CentOS_37

如果我们想要用service(以下方式)来执行该服务怎么办,那就编写vsftpd的脚本。

ftp服务器源码详细安装过程_vsftpd_38

进入/etc/init.d下新建vsftpd文件,并赋予执行权限。

ftp服务器源码详细安装过程_源码_39

测试各种状态,OK。

ftp服务器源码详细安装过程_vsftpd_40

脚本具体内容。

#!/bin/bash

[ -e /etc/init.d/functions ]  &&  . /etc/init.d/functions

prog=/usr/local/bin/vsftpd

lockfile=/var/lock/subsys/vsftpd

start () {

    if [ -e $lockfile ];then

      echo "The vsftpd server is started"

    else

        echo "The vsftpd server is starting..."

        sleep 1

        $prog && echo -e "[  \033[32mOK\033[0m  ]" && touch $lockfile || echo "failer"

    fi

}

stop () {

    if [ ! -e $lockfile ];then

      echo "The vsftpd server is stoped..."

    else

      echo -n "The vsftpd server is stoping..."

      sleep 1

      killproc vsftpd && echo "ok" && rm -rf $lockfile || echo "failer"

    fi

}

status () {

        if [ -e $lockfile ];then

           echo "The vsftpd server is running..."

        else

           echo "The vsftpd is stop"

        fi

}

case "$1" in

start)

   start

    ;;

stop)

   stop

    ;;

restart)

   stop

   start

    ;;

status)

   status

    ;;

*)

echo "USE ONLY:start|stop|restart"

esac