基本概念
來源
Finger原是UNIX系統中用於查詢用戶情況的實用程式(DOS系統也包含此命令)。UNIX系統保存了每個用戶的詳細資訊,包括E-mail地址、帳號、真實姓名、登錄時間、未閱讀的信件、最後一次閱讀E-mail的時間以及外出時的留言等資料。當用Finger命令查詢時,系統會將上述資料一一顯示在查詢者的終端或計算機上。
RFC1288 [Zimmerman 1991] 詳細描述了Finger協定。
會話過程
Finger是一個較為簡單的TCP/IP服務,使用TCP連線埠79以及客戶端/伺服器模式進行會話。
客戶端向伺服器傳送請求,伺服器處理請求並打開到客戶端的連線。
客戶端傳送查詢。
伺服器查詢客戶端請求的信息並返回結果。
伺服器關閉連線。
1.客戶端向伺服器傳送請求,伺服器處理請求並打開到客戶端的連線。
2.客戶端傳送查詢。
3.伺服器查詢客戶端請求的信息並返回結果。
4.伺服器關閉連線。
缺點
雖然Finger較為簡單,但是由於以下兩個原因,許多站點並不支持Finger服務。
Finger早期版本中的一些錯誤曾被Internet蠕蟲病毒所利用,作為系統的入侵點之一。
通過Finger服務查詢到的信息,可能涉及泄露用戶的隱私(如登錄名、地址、電話、登錄時間等)。
1.Finger早期版本中的一些錯誤曾被Internet蠕蟲病毒所利用,作為系統的入侵點之一。
2.通過Finger服務查詢到的信息,可能涉及泄露用戶的隱私(如登錄名、地址、電話、登錄時間等)。
命令格式
Finger作為一個簡單的用於查詢用戶信息的服務,除了在UNIX系統中套用,其它一些非UNIX系統也支持Finger,不同系統之間命令的形式有所差異。
命令的一般格式為:finger [選項] [使用者] [用戶@主機]
命令中各選項的含義如下:
-s 顯示用戶的登錄名、實際姓名、終端名稱、寫狀態、停滯時間、登錄時間等信息。
-l 除了用 -s選項顯示的信息外,還顯示用戶主目錄、登錄shell、郵件狀態等信息,以及用戶主目錄下的 .plan、 .project和 .forward檔案的內容。
-p 除了不顯示 .plan檔案和 .project檔案以外,與-l選項相同。
-m 不匹配用戶實際姓名。一般情況下“用戶”為登錄名,在沒有該選項的情況下也可以與實際姓名進行匹配。進行姓名匹配時,Finger命令對大小寫不敏感。
如果命令不含任何選項,則默認為 -l;如果伺服器沒有實現 -l,則默認為 -s;如果這些欄位都沒有,那么命令的輸出內容中將不包含這些欄位信息。
如果命令不指定任何參數,那么將顯示當前登錄到系統的所有用戶信息。
套用
Finger協定主要用於查詢網際網路上主機或者用戶的信息,可以查看用戶是否登錄、登錄的用戶名、最近一次的登錄時間、地址電話以及一些“Project”和“Plan”信息。除此之外,Finger還可以獲取一些其它信息,如天氣預告、新聞廣告或者商品的銷售狀態等等。