歡迎您光臨本站 註冊首頁

目前,研究者們開發了許多網路服務和協議來完成資源共享的功能.對於網路用戶和管理員來說,他們希望得到免費和高效的服務,而這種需求的最好選擇莫過於當前開源的操作系統Linux下的產品了.本專題從多個應用服務層面著重向讀者們推薦幾種實用的用於資源共享的技術及其軟體.


本文是系列的第3篇文章,詳細介紹FTP.專題的完整內容,請參見:

Linux下的文件共享服務全攻略 http://os.51cto.com/art/201010/231947.htm

Wu-ftpd是Internet上最流行的FTP守護程序.Wu-ftpd功能十分強大,可以構建多種類型FTP伺服器.Wu-ftpd菜單可以幫助用戶輕鬆地實現對FTP伺服器的配置:支持構造安全方式的匿名FTP的訪問,可以控制同時訪問的用戶的數量,限制可以允許訪問的IP網段,並可以在一台主機上設置多個虛擬目錄.Wu-ftpd有三種註冊方式:匿名FTP、實際用戶FTP以及guestFTP.匿名FTP使用用戶名“anonymous”和一個email類型的口令進行註冊.

Wu-ftpd發布較早.在最新版本(2.6.2)里,其已經對最為人擔心的系統安全性問題做了完善的修正,因此還是Ftp Server中的主流.下列是Wu-ftpd的一些功能:

  1. 可對不同網域實行不同存取許可權和可存取時段.
  2. 用戶在下載檔案的同時,可自動實行壓縮或解壓工作.
  3. 可記錄FTP Server使用情形.
  4. 可限定最多聯機人數,以符合整體運作效能.
  5. 顯示相關訊息,讓使用者了解接收狀態.
  6. 可將FTP Server暫停,便於系統維護.
  7. 支持虛擬FTP主機(Virtual FTP Servers).

1、安裝Wu-ftpd伺服器

安裝Wu-ftpd有兩種方式,一種是安裝RPM形式的發布包;另外一種方式是自己動手去編譯生成.下面分別介紹這兩種安裝方式的步驟.

1.RPM包安裝方式

該安裝包可以在RPMfind上下載得到.以RPM包方式安裝非常簡單,只要執行下面簡單的幾個步驟就可以完成:

   //將下載得到的rpm包存放在/tmp目錄下   #cp wu-ftpd-2.6.2-8.i386.rpm /tmp   //切換目錄   #cd /tmp   //進行安裝   #rpm -ivh wu-ftpd-2.6.2-8.i386.rpm

2.源代碼安裝方式

壓縮的源代碼可以在Wu-ftpd官網處得到.目前網上的最新版本為:wu-ftpd-2.6.2.tar,下面是安裝步驟:

   //將壓縮的源代碼拷貝到/usr/src目錄下   # cp wu-ftpd.2.6.2.tar.gz /usr/src   //對壓縮文檔進行解壓縮   #tar xvfz wu-ftpd.2.6.2.tar.gz   //切換目錄   #cd wu-ftpd-2.6.2   //配置   #./configure   //編譯   #make   #make install

2、啟動Wu-ftpd伺服器

在安裝好Wu-ftpd伺服器后,就可以用默認配置啟動使用該伺服器了.通常來說,啟動該伺服器有兩種方式:使用xinetd以及命令行啟動.下面首先分別介紹這兩種啟動方式,然後通過例子說明使用該伺服器的過程.

1.xinetd啟動方式

使用該啟動方式,只要在/etc/xinetd.d目錄下配置wu-ftpd文件即可,如下步驟所示:

   #vi wu-ftpd //使用vi編輯wu-ftpd文件   //編輯內容如下   # default: on /默認/系統啟動時同時啟動該伺服器   # description: The wu-ftpd FTP server serves FTP connections. It uses    # normal, unencrypted usernames and passwords for authentication.   service ftp   {   disable = no   socket_type = stream   wait = no   user = root   server = /usr/sbin/in.ftpd   server_args = -l -a   log_on_success  = DURATION USERID   log_on_failure  = USERID   nice = 10   }   #service xinetd restart //重新啟動xientd服務,以使改動生效

2.命令行方式啟動

使用命令行啟動該伺服器非常簡單,如下所示命令:

   #/usr/sbin/ftpshut //首先關閉該服務   #/usr/sbin/ftprestart //然後重新啟動        

接下來,我們將通過具體的例子說明Wu-ftpd伺服器的使用方法.


3、使用Wu-ftpd伺服器

本小節通過具體的例子來說明如何使用Wu-ftpd伺服器.

(1)使用匿名用戶登錄伺服器

該步驟使用用戶名Anonymous進行FTP登錄,密碼可以隨便輸入,一般情況下Wu-FTP伺服器都會通過,這也是大多數Wu-FTP伺服器的默認登錄方式.

   #ftp 127.0.0.1   Connected to 127.0.0.1 (127.0.0.1).   220 aserver FTP server (Version wu-2.6.2) ready.   Name (127.0.0.1:root): anonymous   331 Guest login ok, send your complete e-mail address as password.   Password:   230 Guest login ok, access restrictions apply.

(2)瀏覽匿名用戶登錄到伺服器的目錄

該步驟測試使用匿名用戶登錄Wu-FTP伺服器后的瀏覽情況,即匿名用戶登錄后能夠看到的FTP伺服器資源的視圖.在一般情況下,匿名用戶只具有非常有限的資源視圖,因而級別較低.如果需要提升許可權的話,需要針對匿名用戶進行配置.

   ftp> ls   227 Entering Passive Mode (127,0,0,1,101,144)   150 Opening ASCII mode data connection for directory listing.   total 40   d--x--x--x 2 root root 4096 Jun 13 2002 bin   d--x--x--x 2 root root 4096 Jul 22 2002 etc   drwxrwxrwx 10 14 50 4096 Oct 10 2003 incoming   drwxr-xr-x 2 root root 4096 Jun 13 2002 lib   drwxrwxrwx 2 root 50 4096 Nov 8 2002 pub   226 Transfer complete.   ftp> cd pub   250 CWD command successful.   ftp> ls   227 Entering Passive Mode (127,0,0,1,140,149)   150 Opening ASCII mode data connection for directory listing.   total 18008   -rw-r--r-- 1 root root 9203662 Oct 7 2002 stack.ots.20021006.tgz   226 Transfer complete.

(3)測試建立目錄許可權,操作失敗,匿名用戶沒有該許可權

該步驟進一步測試匿名用戶所具有的許可權.通過此操作不難看到,在匿名用戶建立目錄時,伺服器返回失敗,進一步證明了匿名用戶一般情況下只具有讀的許可權,而不具有寫的許可權.

   ftp> mkdir super   550 super: Permission denied on server. (Upload dirs)   ftp> cd incoming   550 incoming: No such file or directory.   ftp> cd ..   250 CWD command successful.   ftp> ls   227 Entering Passive Mode (127,0,0,1,164,206)   150 Opening ASCII mode data connection for directory listing.   total 40   d--x--x--x 2 root root 4096 Jun 13 2002 bin   d--x--x--x 2 root root 4096 Jul 22 2002 etc   drwxrwxrwx 10 14 50 4096 Oct 10 2003 incoming   drwxr-xr-x 2 root root 4096 Jun 13 2002 lib   drwxrwxrwx 2 root 50 4096 Nov 8 2002 pub   226 Transfer complete.

(4)進入指定目錄,準備測試下載文件功能

該步驟測試Wu-FTP伺服器的下載文件功能.對於匿名用戶來說,最常見的一個功能就是下載文件,從而說明FTP伺服器的最大的功效就是文件和資源共享.

   ftp> cd incoming   250 CWD command successful.   ftp> dir   227 Entering Passive Mode (127,0,0,1,22,51)   150 Opening ASCII mode data connection for directory listing.   total 112936   -rw-rw-rw- 1 14 50 47104 Aug 26 2002 1.rtf   -rw-rw-rw- 1 14 50 4812 Aug 28 2002 LiveTri.zip   drwxrwxrwx 3 4095 root 4096 Dec 14 2002 RA   -rw-rw-rw- 1 14 50 672 Oct 30 2002 a   -rw-r--r-- 1 root root 38754436 Oct 30 2002 linux-2.4.18.tar.gz   drwxrwxrwx 2 root root 4096 Nov 26 2002 package   drwxrwxrwx 2 4095 root 4096 Jul 29 2002 public_module   -rw-rw-rw- 1 14 50 1968255 Oct 30 2002 rfc2616.pdf   drwxrwxrwx 3 4095 root 4096 Aug 2 2002 sample_log   -rw-r--r-- 1 root root 6506 Jul 28 2002 sendpacket.tar.gz   drwxrwxr-x 11 510 510 4096 Oct 17 2002 stack   -rw-rw-rw- 1 14 50 0 Jul 24 2002 tcpip   drwxrwxrwx 4 4095 root 4096 Aug 23 2002 temp   -rw-rw-rw- 1 14 50 0 Aug 22 2002 test.doc   226 Transfer complete.       //如下操作說明下載文件test.doc操作成功   ftp> get test.doc   local: test.doc remote: test.doc   227 Entering Passive Mode (127,0,0,1,7,193)   150 Opening ASCII mode data connection for test.doc (0 bytes).   226 Transfer complete.       //通過如下操作瀏覽下載到本地的文件,發現test.doc已經下載在其中   ftp> !ls   chargen cvspserver daytime-udp echo-udp ntalk qmail-pop3 rexec rsh sgi_fam telnet time wu-ftpd   chargen-udp daytime echo finger pop3 qmail-smtp rlogin rsync talk test.doc time-udp   ftp> put wu-ftpd   local: wu-ftpd remote: wu-ftpd   227 Entering Passive Mode (127,0,0,1,202,89)   150 Opening ASCII mode data connection for wu-ftpd.   226 Transfer complete.   376 bytes sent in 0.00011 secs (3.3e 03 Kbytes/sec)        

(5)測試刪除許可權,操作失敗

一個步驟來測試匿名用戶對於Wu-FTP伺服器中共享資源的刪除許可權狀況.實驗證明,匿名用戶一般不具有刪除許可權,否則會成為巨大的安全隱患,共享的資源隨時都會有被刪除的危險,因而需要對該許可權實行禁用.

   ftp> delete wu-ftpd   553 wu-ftpd: Permission denied on server. (Delete)   ftp> bye   221-You have transferred 361 bytes in 2 files.   221-Total traffic for this session was 1873 bytes in 2 transfers.   221 Thank you for using the FTP service on aserver.


[火星人 ] Linux下的文件共享全攻略系列之三:主流FTP伺服器Wu-ftpd入門指南已經有659次圍觀

http://coctec.com/docs/linux/show-post-47891.html