1. 程式人生 > >自己搭建vsftpd(轉)

自己搭建vsftpd(轉)

1.下載或者直接 yum 安裝,我就下載 tar包了。

2.隨便把下載的tar.gz包扔到一個地方,我扔到了 /opt下面

3.準備工作
vsftpd的預設配置中需要使用者“nobody”。新增該使用者命令如下:
程式碼:
$ useradd nobody
vsftpd的預設配置中需要目錄“/usr/share/empty”。新增該目錄的命令如下:
程式碼:
$ mkdir /usr/share/empty/

匿名FTP需要使用者“ftp”的存在,並有一個有效的主目錄(不允許使用者“ftp”有擁有權和可寫權)。如沒有此目錄則建立它,命令如下:
程式碼:
$ mkdir /var/ftp/
$ useradd -d /var/ftp ftp
$ chmod 755 /var/ftp
$ mkdir /var/ftp/upload
$ chwon ftp /var/ftp/upload


4.命令操作
$ cd /opt
$ tar zxvf vsftpd-2.2.1.tar.gz
這樣就生成了一個 vsftpd-2.2.1 的資料夾
$ cd vsftpd-2.2.1
$ make
編譯啦,會生成一個 vsftpd的檔案
$ make install
所謂的安裝,會有一個列表把相關的檔案考到相關的地方去
其實主要就是三個檔案
$ cp /opt/vsftpd-2.2.1/vsftpd /usr/local/sbin/
$ cp /opt/vsftpd-2.2.1/vsftpd.conf.5 /usr/local/man/man5/
$ cp /opt/vsftpd-2.2.1/vsftpd.8 /usr/local/man/man8/


推薦還考兩個地方
$ cp /opt/vsftpd-2.2.1/vsftpd.conf.5 /usr/share/man/man5/
$ cp /opt/vsftpd-2.2.1/vsftpd.8 /usr/share/man/man8/

其實安裝和cp 是一樣的,編譯完了手工考也行
還要拷貝一個配置檔案
$ cp /opt/vsftpd-2.2.1/vsftpd.conf

修改配置檔案裡面的內容就google 搞定吧

5.新增服務和增加自啟動指令碼
$ chkconfig --add vsftpd
$ chkconfig  vsftpd on
$ chkconfig --list |grep vsftpd

只要在第2--5為on就能隨機啟動
$ vi /etc/rc.d/init.d/vsftpd


加入如下指令碼
——無敵開始線——
#!/bin/bash
#
# vsftpd      This shell script takes care of starting and stopping
#             standalone vsftpd.
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program \
#              that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x /usr/local/sbin/vsftpd ] || exit 0
RETVAL=0
prog="vsftpd"
start() {
        # Start daemons.
        if [ -d /etc/vsftpd ] ; then
                for i in `ls /etc/vsftpd/*.conf`; do
                        site=`basename $i .conf`
                        echo -n $"Starting $prog for $site: "
                        /usr/local/sbin/vsftpd $i &
                        RETVAL=$?
                        [ $RETVAL -eq 0 ] && {
                           touch /var/lock/subsys/$prog
                           success $"$prog $site"
                        }