环境:centos-6.4-x86_64

挂载光驱:

181517259.jpg

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

181518137.jpg

修改至如下所示:

181519568.jpg

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

181519626.jpg

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

                                         Developmenttools

安装AdditionalDevelopment

181520954.jpg

安装Developmenttools

181521814.jpg

解压安装包

181521315.jpg

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

181522446.jpg

编辑builddefs.h文件

181522459.jpg

并修改至入下图所示

181523406.jpg

执行make命令:

181524754.jpg

然后发现出现错误:

181525851.jpg

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

181526829.jpg

结果如下:

181527389.jpg

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

181528575.jpg

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

181529679.jpg

然后发现还有错误:

181529941.jpg

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

181530608.jpg

结果如下:

181531470.jpg

查看已经安装过的包:

181532651.jpg

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

181533653.jpg

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

181534158.jpg

查看有没有生成vsftpd 文件

181535139.jpg

已经生成

添加nobody账户

181536139.jpg

账户已存在。

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

181537565.jpg

目录已存在

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

181538412.jpg

账户已存在。

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

181539135.jpg

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

181539108.jpg

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

181541928.jpg

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

181541569.jpg

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

181542623.jpg

vsftpd.conf  拷到/etc/目录下

182814180.jpg

vsftpd服务放入后台运行:

182814768.jpg

检测21端口是否开启:

182816503.jpg

使用匿名账号登陆ftp

182819878.jpg

用匿名账号登陆lftp

182819836.jpg

创建一个本地账号:

182821892.jpg

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

182822953.jpg

182823751.jpg

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

182823400.jpg

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

182825246.jpg

重启vsftpd服务:

182825906.jpg

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

182826392.jpg

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

182827509.jpg

vsftpd执行权限

182827102.jpg

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服务:

182828747.jpg

脚本控制功能完成!