檔案傳輸協定(FTP)是UNIX中最常用的網路服務之一。 設置匿名伺服器相當簡單。 而設置虛擬FTP主機和單獨的ftp帳號設置需要一些技巧。
1. 匿名FTP
這是最常見的服務:一台機器就是一個單獨的FTP伺服器。 大多數的UNIX版本會自動完成這一設置:通常ftp的根目錄為/home/ftp
如果由於某些原因,在你的機器上並未設置匿名FTP服務,它的設置工作如下所示:
以下敘說中的~ftp是在/etc/passwd檔中指定的匿名ftp使用者的主目錄。
FTP守護進程,ftpd,會識別出匿名使用者並對帳戶進行適當地調整,訪問的根目錄會設置為~ftp。 這意味著使用者最多隻能訪問~ftp中的檔和目錄。 當然還可以進行更多的限制。 由於檔案系統的根已經修改,需要對幾個目錄和檔進行設置以滿足最低的功能要求。
~ftp的屬主應為root而且只有root 才能寫入。
~ftp/bin的屬主也應為root而且只有root 才能寫入。 它其中應該包含ls程式。 ~ftp/bin/ls的屬主應為root,其存取權限應該為—x—x—x模式,如果不是這樣,可以用chmod 111 ~ftp/bin/ls來修改。
~ftp/lib應該包含libc.so.5。 這些內容可以在/lib目錄下找到。
如果打算讓清單將使用者和組ID翻譯成名字,則需要創建~/ftp/etc目錄。 它應當具有755存取權限,並且應包含將名字和ID相關聯的passwd和group檔。 加密的口令欄位並未使用,應當置為空。 唯一需要存在的欄位是userHTTP://www.aliyun.com/zixun/aggregation/11696.html">name,UID,和GID。
上載和下載目錄~ftp/pub應該具有755訪問模式,並且屬主應為ftp。 這樣才能允許其他人向目錄中上載內容或從目錄中讀取內容。 當然也可以按自己的期望修改擁有權和存取權限。
ftp使用者在/etc/passwd中的條目應為:
ftp: * : 14: 50 : FTP user : /home/ftp;
FTP是由inetd控制的服務,因此在/etc/services中也要有一個對應項。 一般都是設置好的,如果沒有,可以手工加入下一項:
ftp 21/tcp
2.系統中其它的使用者的FTP訪問
當其它使用者帳號(不是anonymous或ftp)連接系統時,必須滿足三個條件才能授予存取權限。
(1)使用者名和口令必須有效。
(2)使用者名必須不在/etc/ftpusers中。
(3)使用者必須有一個有效的shell,也就是說,他的shell必須出現在/etc/shells清單中。