1.环境要求
系统版本:CentOS-6.4-i386
源码包:vsftpd-3.0.2.tar.gz
源码包下载地址:http://pan.baidu.com/s/1iWmdA
2.步骤
查看组包。yum具体使用及配置,参见《CentOS下怎样配置本地源》。
需要两个特别重要的组包.
Additional Development和Development tools
本机已经安装,如果未安装,使用以下命令安装。
上传需要使用的源码包。如果你的机器中已经安装了vsftp,建议先卸载,再安装源码。
解压该源码包,到指定位置。
切换到该指定位置。里面有INSTALL文件,其实这个INSTALL文件就是详细的安装步骤,只要按照这个文件中的步骤,就能成功安装ftp服务器。我们就按照INSTALL文档步骤,第一步要编辑builddefs.h的文件。
编辑builddefs.h文件
将TCPWRAPPERS这一项的undef修改为define就OK了。
执行安装。
出现错误,根据错误提示,是tcpwrap的问题。
利用本地源搜索下关于wrap的软件包。并安装tcp_wrappers-devel的包。
安装完成后,清除下刚才安装的缓存,重新安装。
完成后根据INSTALL文档的提示,创建nobody用户。创建后提示用户已存在。
搜索下nobody用户,确实已经存在。
接着按照文档提示,新建一个空目录,也已存在。
接着,创建ftp用户的家目录。并且添加到该用户,也已存在。
搜索下,ftp用户已存在,且家目录也正确。
接着,对该目录改变所有者和所属组都为管理员,并且把写的权限去掉(不让其他人随意向ftp中写东西哦)。
执行安装。
安装成功后,vsftpd存在了,且man8和man5手册都已创建。
再次根据INSTALL文档的提示,将配置文件拷贝到/etc下。
开始执行vsftpd服务。(&:在后台运行。)
查看21端口,已开启。
用本机测试下,但是lftp和ftp都打不开,缺少指令。
利用本地源搜索下这两个命令的包。
安装这两个命令。
再次访问下。可以匿名登录了,密码为空。
在/var/ftp下建立一个pub文件夹。
再次匿名访问,pub存在。lftp直接可以以匿名身份登录。
添加一个本地用户user1,并设置相应口令。
再次访问,用本地用户user1登录,提示失败。
根据INSTALL文档提示,拷贝接口文件。
并且编辑/etc下的配置文件。
将第15行的本地账号登录的注释去掉。
由于修改了配置文件,杀死ftp进程,重新启动。
重新测试,user1成功登录进去。
如果我们想要用service(以下方式)来执行该服务怎么办,那就编写vsftpd的脚本。
进入/etc/init.d下新建vsftpd文件,并赋予执行权限。
测试各种状态,OK。
脚本具体内容。
#!/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