环境:centos-6.4-x86_64

挂载光驱:

centos环境下ftp服务的安装_centos

进入/etc/yum.repos.d/编辑CentOS-Media.repo文件

centos环境下ftp服务的安装_vsftpd_02

修改至如下所示:

centos环境下ftp服务的安装_vsftpd_03

yum搜索系统已经安装和未安装的工具

centos环境下ftp服务的安装_vsftpd_04

其中需要安装的有这两个:AdditionalDevelopment

                                         Developmenttools

安装AdditionalDevelopment

centos环境下ftp服务的安装_安装_05

安装Developmenttools

centos环境下ftp服务的安装_安装_06

解压安装包

centos环境下ftp服务的安装_安装_07

阅读INSTALL帮助文件,以下步骤全根据ISTALL文件中的提示进行!

centos环境下ftp服务的安装_vsftpd_08

编辑builddefs.h文件

centos环境下ftp服务的安装_centos_09

并修改至入下图所示

centos环境下ftp服务的安装_vsftpd_10

执行make命令:

centos环境下ftp服务的安装_centos_11

然后发现出现错误:

centos环境下ftp服务的安装_centos_12

由于错误中大量提到 tcpwrap 所以有可能是tcpwrap安装有错误,搜索本地其他与wrap相关的服务

centos环境下ftp服务的安装_安装_13

结果如下:

centos环境下ftp服务的安装_安装_14

安装其中以tcp_wrap开头的文件:

centos环境下ftp服务的安装_安装_15

make clean all 删除以前make 产生的文件并重新执行:

centos环境下ftp服务的安装_centos_16

然后发现还有错误:

centos环境下ftp服务的安装_vsftpd_17

继续查询与cap相关的文件:

centos环境下ftp服务的安装_centos_18

结果如下:

centos环境下ftp服务的安装_centos_19

查看已经安装过的包:

centos环境下ftp服务的安装_vsftpd_20

发现需要安装的有一libcap-devel开头的包,然后安装:

centos环境下ftp服务的安装_vsftpd_21

再次执行 make clean all后并执行make

centos环境下ftp服务的安装_vsftpd_22

查看有没有生成vsftpd 文件

centos环境下ftp服务的安装_vsftpd_23

已经生成

添加nobody账户

centos环境下ftp服务的安装_安装_24

账户已存在。

/usr/share/下创建一个empty目录

centos环境下ftp服务的安装_centos_25

目录已存在

对于一个匿名的FTP需要有一个账号ftp,并且要有一个家目录:

centos环境下ftp服务的安装_centos_26

账户已存在。

改变ftp账户的所有者和所有组都是管理员:

centos环境下ftp服务的安装_centos_27

针对our用户和组用户都是不可写的,因为这些账号都是匿名的:

centos环境下ftp服务的安装_centos_28

执行 makeinstall 命令把所有文件复制到对应的目录中:

centos环境下ftp服务的安装_centos_29

创建man目录及man5man8 两个子目录;

centos环境下ftp服务的安装_centos_30

vsftpd.conf.5vsftpd.8分别拷入man5man8目录中:

centos环境下ftp服务的安装_vsftpd_31

vsftpd.conf  拷到/etc/目录下

centos环境下ftp服务的安装_centos_32

vsftpd服务放入后台运行:

centos环境下ftp服务的安装_vsftpd_33

检测21端口是否开启:

centos环境下ftp服务的安装_安装_34

使用匿名账号登陆ftp

centos环境下ftp服务的安装_安装_35

用匿名账号登陆lftp

centos环境下ftp服务的安装_vsftpd_36

创建一个本地账号:

centos环境下ftp服务的安装_安装_37

用本地账号登陆ftp失败,因为ftp默认使用匿名账号登陆:

centos环境下ftp服务的安装_安装_38

centos环境下ftp服务的安装_vsftpd_39

按照ISTALL上的说明进行如下操作:

centos环境下ftp服务的安装_安装_40

进入/etc/vsftpd.conf并作以下修改:

centos环境下ftp服务的安装_centos_41

重启vsftpd服务:

centos环境下ftp服务的安装_centos_42

再次测试本地账号已经可以登陆:

centos环境下ftp服务的安装_vsftpd_43

/etc/init.d/下创建vsftpd 控制脚本:

centos环境下ftp服务的安装_vsftpd_44

vsftpd执行权限

centos环境下ftp服务的安装_centos_45

vsftpd控制脚本代码如下:

#!/bin/bash

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

prog=/usr/local/sbin/vsftpd

lockfile=/var/lock/subsys/vsftpd

start () {      

       if [ -e $lockfile ];then

         echo "the vsftpd isstarted"

       else

        echo "the vsftpd isstarting....."

       sleep 1

          $prog &

               if [ $? ];then

               echo "[ok]"&& touch $lockfile

               else

               echo "failer"

               fi

       fi


}

stop () {

       if [ ! -e $lockfile ];then

       echo "the vsftpd is stoped"

       else

       echo -n "the vsftpd isstopping....."

       sleep 1

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

       fi




}

status () {

       if [ -e $lockfile ];then

       echo "the vsftpd server isstarted"

       else

       echo "the vsftpd server isstoped"

       fi


}


case"$1" in


start)

       start

       ;;

stop)

       stop

       ;;

status)

       status

       ;;

restart)

       stop

       start

       ;;

*)

       echo "USAGE:start|stop|status|restart"


esac

重新运行vsftpd服务:

centos环境下ftp服务的安装_安装_46

脚本控制功能完成!