vsftpd配置詳解之配置vsftpd服務(wù)
配置vsftpd服務(wù):
服務(wù)的啟動(dòng)與停止
啟動(dòng)服務(wù)之前,我們先編輯配置文件/etc/vsftpd/vsftpd.conf. 打開配置文件后可以看到許多以“#”開始的行,這些行都是注釋行,大多是幫助信息,可以仔細(xì)閱讀。vsftpd.conf文件的所有項(xiàng)目都是以“參數(shù)=值”來(lái)設(shè)置的,對(duì)格式要求比較嚴(yán)格,必須嚴(yán)格區(qū)分大小寫,等號(hào)兩邊不能有空格,每行的最后也不能有空格。每個(gè)參數(shù)都有一個(gè)默認(rèn)值,沒(méi)有在配置文件中明確指定的參數(shù)就會(huì)使用默認(rèn)值。我們這里不理會(huì)配置文件本來(lái)的信息,把所有內(nèi)容都刪掉或注釋掉,最后加上下面四行,每行右邊的//及后的文字是含義說(shuō)明,不要輸入到文件中:
- listen=yes //vsftpd工作在standalone 模式下
- anonymous_enable=yes //允許匿名用戶登陸服務(wù)器
- local_enable=yes //允許本地用戶登錄到服務(wù)器
- pam_service_name=vsftpd //使用PAM認(rèn)證
vsftpd有兩種工作模式,standalone模式和xinetd守護(hù)進(jìn)程模式,第1行就是讓其工作在standalone模式下。此種模式中,每次修改配置文件必須重新啟動(dòng)vsftpd服務(wù)才能生效,關(guān)于兩種模式在后面有詳細(xì)介紹。我們安裝時(shí)還把 Redhat 目錄下的 vsftpd.pam 文件復(fù)制成了/etc/pam.d/vsftpd 文件。這個(gè)文件就是本地用戶登陸的 pam 驗(yàn)證配置文件。關(guān)于這個(gè)文件我們會(huì)在后面具體介紹。這里我們要知道,必須得有這個(gè)配置文件,而且主配置文件里要加上 pam_service_name=vsftpd語(yǔ)句,我們才能讓本地用戶登陸。用以下命令啟動(dòng)服務(wù):
- # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &
為保證服務(wù)確實(shí)啟動(dòng),我們用如下命令檢測(cè):
- # netstat -an |grep 21
- tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
我們看到服務(wù)器已經(jīng)打開了tcp21端口,表明ftp確實(shí)已經(jīng)啟動(dòng)。再登錄服務(wù)器:
- # ftp 127.0.0.1
- Connected to 127.0.0.1.
- 220 (vsFTPd 2.0.5)
- 530 Please login with USER and PASS.
- 530 Please login with USER and PASS.
- KERBEROS_V4 rejected as an authentication type
- Name (127.0.0.1:root): ftp
- 331 Please specify the password.
- Password:
- 230 Login successful.
這時(shí)我們已經(jīng)用匿名用戶(用戶名ftp或anonymous,密碼任意)登錄到服務(wù)器了,還可以用本地用戶登錄。我們做測(cè)試時(shí)建議使用如上所示的ftp命令(windows、Linux及Unix都帶這個(gè)命令,用法都是一樣的)來(lái)登錄服務(wù)器,這樣可以看到更詳細(xì)的信息,對(duì)于我們調(diào)試服務(wù)器是非常有幫助的。最簡(jiǎn)單的ftp服務(wù)器就已經(jīng)達(dá)建起來(lái)了。使用如下命令關(guān)閉ftp服務(wù):
- # killall vsftpd
服務(wù)啟動(dòng)腳本的制作
在standalone 模式中,經(jīng)常用上面的命令啟動(dòng)服務(wù)比較麻煩,我們做一個(gè)腳本來(lái)啟動(dòng)和停止服務(wù)。
建立一個(gè)新文件/etc/rc.d/init.d/vsftpd,把以下內(nèi)容復(fù)制到文件中:
- #!/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"
- }
- echo
- done
- else
- RETVAL=1
- fi
- return $RETVAL
- }
- stop() {
- # Stop daemons.
- echo -n $"Shutting down $prog: "
- killproc $prog
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
- return $RETVAL
- }
- # See how we were called.
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart|reload)
- stop
- start
- RETVAL=$?
- ;;
- condrestart
- if [ -f /var/lock/subsys/$prog ]; then
- stop
- start
- RETVAL=$?
- fi
- ;;
- status)
- status $prog
- RETVAL=$?
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|condrestart|status}"
- exit 1
- esac
- exit $RETVAL
保存文件,再給該文件加上執(zhí)行權(quán)限:
- # chmod 755 /etc/rc.d/init.d/vsftpd
這樣我們就可以通過(guò)下面的方法來(lái)管理服務(wù)了:
- # service vsftpd {start|stop|restart|condrestart|status}
例如重新啟動(dòng)服務(wù):
- # service vsftpd restart
- Shutting down vsftpd: [OK ]
- Starting vsftpd for vsftpd: [OK ]
【編輯推薦】