環境:centos6.4 x86_64centos
所需應用程序:vsftpd-3.0.2.tar.gzbash
在個人另外一篇博文中詳細介紹過httpd源代碼安裝。(博文地址:http://mading.blog.51cto.com/8252187/1341185)那麼在這裏我要介紹一下vsftpd源代碼安裝,比較一下和httpd源代碼安裝有什麼不一樣的地方。關於源代碼安裝的步驟我在這裏就不在詳細介紹了。app
源代碼安裝軟件系統中固然少不了編譯環境,在這裏就再也不介紹編譯環境的搭建,我在前面關於httpd安裝的博文中有過詳細介紹,若有不懂能夠先看那篇博文。下面開始介紹vsftpd的安裝與測試。tcp
首先解壓縮vsftpd-3.0.2.tar.gz,使用命令 tar –zxvf vsftpd-3.0.2.tar.gz –C /usr/local/src 切換到/usr/local/src目錄中就能夠看到剛剛解壓的所造成的目錄ide
切換到該目錄下,比較一下和前面httpd有什麼不一樣測試
發現這裏面並無configure文件,那麼怎麼辦呢?不要緊,在INSTALL這個文件中已經詳細的告訴咱們該怎麼作。那麼咱們就按照上面的步驟來走吧。ui
首先編輯builddefs.h這個文件spa
在這裏我須要使用tcpwrappers,咱們就修改tcpwrapper那一行爲:define VSF_BUILD_TCPWRAPPERS 保存退出3d
接下來就執行 make;但是當咱們make的時候發現出現錯誤,如圖所示rest
發現關於tcpwrap的錯誤,經過查詢咱們的系統中安裝了一個tcpwrap的庫,查詢光盤時發現還有其餘關於tcpwrap相關的軟件
那咱們就來安裝一下tcp_wrappers 和 tcp_wrapper-devel
安裝後繼續執行make ,執行前先使用make clean all 清除前面make過的,而後make
但又有錯誤了
那就再安裝libcap了,安裝以後,再執行上面的步驟,這時候就能夠make經過了,而後查看一下當前目錄中有沒有造成一個vsftpd的文件
接下來須要爲vsftpd建立一個nobody的賬號,首先查看一下有沒有這個賬號,
發現已經存在,那麼就不須要再建立了,繼續下一步,vsftpd須要一個空目錄,在/usr/shaer/empty下,建立時會提示有一個這樣的目錄,那就繼續下一步,由於ftp須要匿名登陸,而且有本身的家目錄,咱們須要建立這樣一個目錄,再創建一個ftp的賬號
修改/var/ftp 的全部者和所屬組爲root 而且修改other用戶和組用戶權限爲不可寫
接下來執行 make install
而後建立/usr/local/man/man5 /usr/local/man/man8
分別拷貝vsftpd.conf.5到/usr/local/man/man5 vsftpd.8到/usr/local/man/man8
同時還須要把vsftpd.conf 拷貝到/etc目錄下
實際上到了這裏咱們的ftp已經安裝完成了,而後咱們運行一下:
/usr/local/sbin/vsftpd & 這裏面的&符號表示後臺運行
經過上圖能夠看到ftp已經運行了
這時候咱們就可使用ftp localhost 或者lftp localhost登陸測試了,ftp和lftp是不同,用ftp登錄時必須輸入用戶名才能登陸,而lftp則不須要
若是咱們想要使用本地賬號登陸必需要有/etc/pam.d/ftp這個文件,若是沒有咱們就要拷貝一個;咱們能夠直接把 RedHat/vsftpd.pam 拷貝成/etc/pam.d/ftp
而後修改/etc/vsftpd.conf 把#local_enable=YES前面的#號去掉
重啓一下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 "vsftpd server is started"
else echo -n "vsftpd server is starting... "
sleep 1
$prog &
if [ $? ];then
echo "[ ok ]"&& touch $lockfile
else
echo "[ failer ]"
fi
fi
}
stop(){
if [ ! -e $lockfile ];then
echo "vsftpd server is stoped"
else echo -n "vsftpd server is stoping... "
sleep 1
killproc vsftpd && echo "[ ok ]" && rm -rf$lockfile ||echo "[ failer ]"
fi
}
status(){
if [ -e $lockfile ];then
echo "vsftpd server is started"
else echo "vsftpd server no found"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo"USAGE:start|stop|restart|status"
;;
Esac
好了,到這裏咱們的vsftpd已經安裝和測試完成了