架設 FTP


嗯﹐接下來的 FTP 也是挺好玩的﹐如果您的 FTP 伺服器能連得上 internet﹐就算是使用撥接﹐只要您把當前的 IP 地址告訴您的朋友﹐然後﹐您就可以直接讓他們使用 FTP 來下載您的檔案了(如果在 IP Masquerade 之後﹐則需要更高技巧)。只要設定得宜﹐用它來上載也可以啦﹗

當然啦﹐ FTP 不至於是這麼用的﹐如果您的內部網路有個 FTP 伺服器的話﹐其便利也是不言而喻的。

設定FTP

一如您從安裝到現在所感到的﹕在 Linux 上面設定伺服器﹐要 up & run 其實不難﹐要設定一個適合自己實際情況的就需要多些技巧了。架設 FTP 伺服器也一樣﹐如果您只想它工作的話﹐根本就無需任何設定﹐您只在客戶端要輸入﹕ ftp redhat52.siyongc.domain 就可以使用了(後面我們再討論一下如何使用文字模式的 FTP Client)。

當然﹐做為一個網路管理者﹐就算其懶如我者﹐總也會試試設定一下在您機器上面的服務吧﹖下面讓我們修改一下 /etc/ftpaccess 這個檔案﹕

class   all   real,guest,anonymous  *
這裡﹐我們定義了一個的使用者類別(Class)﹕all。而後面的分別有三組使用者﹕real 是有帳號的使用者﹔guest是訪客﹔anonymous是匿名者。
然而﹐如果您想設定一些限制的話﹐可以將這行換成這樣﹕
class all real,guest,anonymous *.siyongc.domain 192.168.0.*
這樣我就限制了只有 siyongc.domain 這個網域 或(OR) 192.168.0 這個 IP 網路的機器才能連上來。
又或者﹐我們不改變原來的句子﹐另外寫幾行﹕
deny badhost.*
deny *.bad.domain
我們就可以將所有 badhost 的主機和所有 bad.domain 裡面的主機擋掉了。

email webmaster@siyongc.domain
這行是指定了環境變數 %E (郵件地址)的值。

loginfails 5
如果您的用戶一連輸入 5 次密碼都失敗的話﹐連線就會切斷。

readme  README*    login
readme  README*    cwd=*
如果您將一個 README 檔案放在 /home/ftp 或是使用者家目錄﹐當使用者 login 的時候﹐就會看到下面的句子﹕
230-Please read the file README
230- it was last modified on Wed Dec 1 11:26:52 1999 - 0 days ago
如果您將 README 放於子目錄那裡﹐那麼 cwd (Change Working Directory) 進入到該目錄的時候﹐上面的句子也會顯示出來。

message /welcome.msg            login
message .message 
和 README 差不多﹐不過﹐您可以修改/建立一個 /home/ftp/welcome.msg 的檔案﹐如﹕
###################################################################
Hi, %U, Welcome to netman's FTP site.
You are now in %L%C at local time %T, and you are from %R.
There are currently %N of maximum %M users on site.
Please take it easy and enjoy! If you have any problem or comments,
 feel free to contact me at %E.
###################################################################

如果您不知道那些變數(%﹖)代表什麼﹐待會您用 anonymous 登錄一下就知道了。

limit   all     100     Any     /limit.msg 
如果您不加這行的話﹐是沒有連線限制的。這行的意思是在任何時間(Any﹐注意大小寫)連線限制在100 人數﹐之後的使用者就會看到 /home/ftp/limit.msg 這個檔案的警告(您自己組織吧)。

compress        yes             all
tar             yes             all
這是說是否允許(這裡是 yes)對檔案進行壓縮﹐哪些人(這裡是 all) 可以執行哪個壓縮程式(這裡是 tar)。

chmod           no              guest,anonymous
delete          no              guest,anonymous
overwrite       no              guest,anonymous
rename          no              guest,anonymous
這裡主要是針對 guest 和 anonymous 做了些限制﹐您可以根據自己的要求修改上面的權限設定。

log transfers anonymous,real inbound,outbound
這樣會將 anonymous 和 real 使用者的上傳和下傳動作記錄下來。

shutdown /etc/shutmsg
如果在 /etc 目錄下面有一個 shutmsg 的檔案的話﹐FTP 在啟動的時候會去讀取它﹐從而確定在什麼時候關閉 FTP 服務。這個檔案的設定內容是﹕
年、月、日、時、分、關閉前停止登入時間(如﹕15)、關閉前將使用者踢出去的時間(如﹕5)
(用空白鍵將各元素分隔即可)
如果您不知道如何寫這個檔案﹐可以使用 ftpshut 命令﹕
ftpshut -l15 -d5 1630
這樣 FTP 就會於下午 4點30分關閉了。

passwd-check rfc822 warn
這是針對 anonymous 的密碼而設定的﹐您可以將 rfc822 改成 none (不用密碼)﹐或 trivial (密碼一定要有‘@’符號)﹔如果密碼格式不對﹐您可以將 warm (只提出警告) 改成 enfoce (不接受連線)。

upload /home/ftp	*	no
upload /home/ftp	/bin	no
upload /home/ftp	/etc	no
upload /home/ftp	/incom	yes	root	daemon		0600	dirs
這裡定義了只有在 FTP 根目錄下(/home/ftp) 的子目錄 (/incom) 下面允許(yes) 使用者(root) 和群組(daemon) 可以寫入(0600)﹐也可以建立子目錄(dirs)﹔其他子目錄就不可以進行 upload 了。

alias test /pub/test
這是別名設定﹐使用者進入 test 目錄和進入 /pub/test 目錄都是同一個地方。(tips: 您也可以在 httpd 的 /etc/httpd/srm.conf 如法泡制哦~~)

還有很多設定的﹐這裡不再一一說明啦﹐請自行發掘。

通常﹐real 使用者登入 FTP 之後﹐都會進入到其家目錄中去﹐而且還可以離開家目錄以外的地方流覽﹐如果您想針對某些使用者﹐限制他們只能停留在家目錄中。您可以先建立一個群組(或干脆使用 ftp 這個群組)﹐然後修改 /etc/group 將使用者包括進這個群組中(用“﹐”分隔)﹐然後在 /etc/ftpaccess 檔案中加入﹕
guestgroup ftp
就可以限制他們的活動範圍了。如果這樣設定在測試時還有其它問題﹐那就先 man 一下 ftpaccess﹐看看 restricted-uid 的參數,然後在 /etc/ftpaccess 加上﹕
restricted-uid * 

另外還有一個檔案﹕/etc/ftpusers 。咋一看還以為是使用 ftp 的 users 呢﹐但事實是﹕只要user (一行一個)出現在該檔案裡面﹐就不能透過 FTP 連接到本機了﹗至於另外的 /etc/ftpgroups、 /etc/ftphosts 是否也如此呢﹖哈哈﹐自己試試吧﹐挺好玩的。

在您的 FTP 伺服器提供服務之後﹐如果您想查看一下目前人數和最高限制人數的話﹐可以使用 ftpcount 命令﹐如果想看更多信息﹐可以使用 ftpwho 命令。

關於更詳細的設定﹐請 man ftpaccess 這篇 manual 。

使用FTP

如果您會得用 WSFTP 或 QFTP 等 FTP 工具的話﹐您已經會得如何操作 FTP 客戶端了。不過﹐有時候也許您會使用到最原始的 FTP 操作來進行檔案傳輸的。

無論您使用 Windows 或是 Linux ﹐系統本身就具備了 FTP 客戶功能了﹐您只要輸入﹕
ftp ftp.server.address
就可以進行 FTP 連接了。當然﹐如果有火牆的話﹐要允許 FTP 通過才行。您可以 man ftp 看一下有哪些參數可以使用﹐和它們做什麼用的。

如果您只輸入 ftp 而不帶任何參數或伺服器地址﹐您會得到一個 “ftp>”的提示符﹐這時候您可以輸入﹕
open ftp.server.address

如果連接成功﹐您會得到登錄提示的(除非您使用了 -n 的參數)。如果您有帳號的話﹐可以用自己的帳號登錄﹐或是輸入 ﹕
user
進行身份轉換。另外﹐您可以使用 guest (要確定此帳號在該伺服器上已經被啟用)﹐或使用 anonymous 進行登錄。如果使用匿名登錄﹐您可以使用自己的電子郵件信箱地址做密碼。(tips: 在windows如果想使用自動匿名登錄﹐可以用‘-A’參數)

進入 FTP 之後﹐其檔案管理命令和 Linux 上的差不多﹐但權限可能會少很多。不過﹐有些命令還是不同的﹐例如 delete、rename、cdup 等。

如果您想暫時跳離 FTP 提示符而回到正常的操作環境中﹐可以輸入“”﹐但 FTP 還是在工作的﹐要回去的話﹐請輸入﹕
exit

如果您要離開該伺服器的話﹐使用 close 命令﹐這樣您還是會留在 FTP 提示符中的。如果您要完全終止 FTP 程式﹐使用 byequit 命令。

如果您想知道目前的 FTP 使用情況﹐可以輸入 status 命令。

我們既然使用 FTP ﹐無非是傳送檔案罷了﹐在進行傳送之前﹐為了提高速度和資料的準確性﹐您可以將檔案模式設為asciibinay ﹐一般我們傳送的檔案都使用 binary ﹐如果是文字檔的話﹐可以使用 ascii 的。

如果您看到了哪些檔案感興趣的﹐可以使用 get file.1 file.2recv file.name 將之抓下來。

如果您有權限寫入的話﹐可以使用 put file.name 上傳﹐但您要確定本地檔案的路徑要在當前目錄之下。如果您要查看或轉變本地路徑﹐可以使用 lcd 命令。

至於其它命令﹐用 help 看一看它們用來做什麼的。

 

 


© 2000 Netman 網中人
Last Updated: Feb 15, 2000