环境:centos-6.4-x86_64
挂载光驱:
进入/etc/yum.repos.d/编辑CentOS-Media.repo文件
修改至如下所示:
用yum搜索系统已经安装和未安装的工具
其中需要安装的有这两个:AdditionalDevelopment
Developmenttools
安装AdditionalDevelopment
安装Developmenttools
解压安装包
阅读INSTALL帮助文件,以下步骤全根据ISTALL文件中的提示进行!
编辑builddefs.h文件
并修改至入下图所示
执行make命令:
然后发现出现错误:
由于错误中大量提到 tcpwrap 所以有可能是tcpwrap安装有错误,搜索本地其他与wrap相关的服务
结果如下:
安装其中以tcp_wrap开头的文件:
用make clean all 删除以前make 产生的文件并重新执行:
然后发现还有错误:
继续查询与cap相关的文件:
结果如下:
查看已经安装过的包:
发现需要安装的有一libcap-devel开头的包,然后安装:
再次执行 make clean all后并执行make
查看有没有生成vsftpd 文件
已经生成
添加nobody账户
账户已存在。
在/usr/share/下创建一个empty目录
目录已存在
对于一个匿名的FTP需要有一个账号ftp,并且要有一个家目录:
账户已存在。
改变ftp账户的所有者和所有组都是管理员:
针对our用户和组用户都是不可写的,因为这些账号都是匿名的:
执行 makeinstall 命令把所有文件复制到对应的目录中:
创建man目录及man5和man8 两个子目录;
将vsftpd.conf.5和vsftpd.8分别拷入man5和man8目录中:
将vsftpd.conf 拷到/etc/目录下
将vsftpd服务放入后台运行:
检测21端口是否开启:
使用匿名账号登陆ftp:
用匿名账号登陆lftp:
创建一个本地账号:
用本地账号登陆ftp失败,因为ftp默认使用匿名账号登陆:
按照ISTALL上的说明进行如下操作:
进入/etc/vsftpd.conf并作以下修改:
重启vsftpd服务:
再次测试本地账号已经可以登陆:
在/etc/init.d/下创建vsftpd 控制脚本:
给vsftpd执行权限
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服务:
脚本控制功能完成!