29.9. 檔案傳輸協定 (FTP)

檔案傳輸協定 (File Transfer Protocol, FTP) 提供了使用一個簡單的方式能夠將檔案傳輸到與接收自 FTP 伺服器,FreeBSD 內建了 FTP 伺服器軟體 ftpd 在基礎系統 (Base system) 中。

FreeBSD 提供了多個設定檔來控制對 FTP 伺服器的存取,本節將摘要這些檔案的設定方式,請參考 ftpd(8) 來取得更多有關內建 FTP 伺服器的詳細資訊。

29.9.1. 設定

最重要的一個設定步驟便是決定那些帳號能夠存取 FTP 伺服器,FreeBSD 系統有數個系統帳號,這些帳號不應該能夠擁有 FTP 存取權,不允許存取 FTP 的使用者清單可在 /etc/ftpusers 找到,預設該檔案內會有所有的系統帳號,其他不應允許存取 FTP 的使用者也可在此加入。

在某些情況可能會布望限制某些使用者的存取,而不是完全避免這些使用者使用 FTP,這可以透過建立 /etc/ftpchroot 來完成,詳如 ftpchroot(5) 所述,這個檔案會列出受到 FTP 存取限制的使用者與群組。

要在伺服器上開啟匿名 FTP 存取權,可在 FreeBSD 系統上建立一個名稱為 ftp 使用者,使用者將能夠使用 ftpanonymous 使用者名稱來登入 FTP 伺服器,當提示輸入密碼時,輸入任何值都會被接受,但是慣例上應使用電子郵件位址來當做密碼。當匿名使用者登入時 FTP 伺服器會呼叫 chroot(2) 來限制使用者只能存取 ftp 使用者的家目錄。

要設定顯示給 FTP 客戶端的歡迎訊息有兩個文字檔可以建立,/etc/ftpwelcome 的內容會在收到登入提示前顯示給使用者看,登入成功能後,則會顯示 /etc/ftpmotd 的內容。注意,這個檔案的路徑是相對於登入環境的,所以 ~ftp/etc/ftpmotd 的內容只會對匿名使用者顯示。

設定完 FTP 伺服器之後,在 /etc/rc.conf 設定適當的變數來在開機時啟動該服務:

ftpd_enable="YES"

要立即啟動服務可:

# service ftpd start

要測試到 FTP 伺服器的連線可輸入:

% ftp localhost

ftpd daemon 會使用 syslog(3) 來記錄訊息,預設,系統記錄 Daemon 會寫入有關 FTP 的訊息到 /var/log/xferlogFTP 記錄的位置可以透過更改 /etc/syslog.conf 中下行來做修改:

ftp.info      /var/log/xferlog

注意:

要注意啟動匿名 FTP 伺服器可能的潛藏問題,尤其是要讓匿名使用者上傳檔案時要再次確認,因為這可能讓該 FTP 站變成用來交換未授權商業軟體的交流平台或者更糟的狀況。若真的需要匿名 FTP 上傳,那麼請檢查權限設定,讓這些檔案在尚未被管理者審查前不能夠被其他匿名使用者讀取。

本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢 <questions@FreeBSD.org>。

關於本文件的問題,請洽詢 <doc@FreeBSD.org>。