資料庫簡圖
A. 提供WWW服務的JAFOV資料庫
K.Yamamoto
(Koka Women's College,38 Kadonocho,Nishikyogoku,Ukyo,Kyoto 571,Japan)
N.Nishiwaki
(Nara University,1500 Misasagicho,Nara 631,Japan)
摘要JAFOV是一個描述日本脊椎動物化石標本的資料庫,存儲了大約4500個標本的有關數據。資料庫於1982年建立在日本Kyoto大學數據處理中心的大型機上,並以聯機形式提供對外服務。這個系統使用不方便且圖像處理功能弱,因此我們試圖運用WWW技術來解決這些問題。WWW提供非常美觀、友好的用戶界面,是一條在網際網路上處理各種多媒體信息的有效途徑。在本項研究中,我們使用WWW技術開發了一個基於網際網路的新型JAFOV服務系統原型。經過試運行,我們認為建立的新系統對JAFOV這類資料庫的改造是適合的。
關鍵詞資料庫化石脊椎動物標本網際網路WWWDBMS
1引言
JAFOV是日本脊椎動物化石標本資料庫。它於1982年建成,記錄了大約4500個標本的描述數據。資料庫存放在日本Kyoto大學數據處理中心的大型機上,以聯機資料庫的形式提供對外服務。然而,資料庫還存在一些問題,如不易使用、圖像(標本的照片念叢或草圖)聯機處理功能弱等。
在本項研究中,我們試著應用WWW技術使系統的使用更加容易並增強圖像的聯機處理能力。WWW提供非常美觀、友好的用戶界面,是一條在網際網路上處理各種多媒體信息的有效途徑。將它與DBMS連接,我們可以獲得一個比當前使用的JAFOV聯機資料庫更好的服務系統。
在本項研究中,對要開發的目標系統有以下幾點要求:
(1)數據檢索可以通過WWW瀏覽器仔早櫻如Mosaic,Netscape等進行;
(2)能處理的數據不僅包括文檔和數字,還應包括化石的圖像;
(3)檢索到的數據能直接在終端上顯示、列印或下載到用睜燃戶計算機上。
2JAFOV簡介
2.1資料庫內容
名字JAFOV來源於jApanese FOssil Vertebrate(日本脊椎動物化石)的縮寫。它是一個由日本脊椎動物化石標本描述的數據組成的資料庫。JAFOV資料庫的內容包括化石標本的文檔、數字和圖像數據,見圖1。不過到目前為止,只有文檔數據已經入庫,而由於某些原因(主要是技術上的),資料庫還遠沒有實現。
圖1JAFOV資料庫的原始設計
JAFOV使用一個稱為FAIRS的DBMS層次模型。它專為富士通公司製造的大型計算機而設計。這個DBMS適合於文檔資料庫,如正在使用的JAFOV,它為那些作為查找關鍵詞而經常使用的數據項生成一個倒排文件以加速查找過程。這個模型不適合於處理數字和圖像數據。
JAFOV由41個數據項(表1)組成,內容包括標本的描述、地理位置、地質層位、保管人及其它有關信息等。它們被歸類為8個組,即:名字、類屬、產地、化石形成層位、地質年齡、化石區段、標本保管人和相關參考書目。其中一部分數據項被定義為查找鍵,其餘除少量僅供輸出外,均作為文本數據項進行查找。
表1JAFOV資料庫中的數據項
大部分數據項的值直接從原始數據輸入,其餘則通過使用字典和/或轉換表從其它數據項獲取值。如轉換表中箭頭所示,有一些數據項的值通過已有的轉換表生成,還有一些則從父數據項中摘取生成。這些數據項的存在減少了數據輸入工作量並大大降低了數據出錯率。
2.2資料庫結構
JAFOV資料庫由JAFOV工作組建立和維護,它是日本脊椎動物化石學家協會(AVPJ)下的一個志願小組。
建立JAFOV資料庫的過程如圖2所示。原始數據由日本的古生物研究所(所)及博物館的志願者提供。他們填寫有關他們標本的數據採集單並交給工作組。工作組檢查數據單並把內容輸入到計算機形成原始計算機數據,由計算機的數據轉換程序自動把它轉換成JAFOV需要的輸入數據。在這個過程中,一些數據項的數據通過參照從代碼表得到的字典文件被生成,另一些項的數據則從父數據項中摘取。隨後以JAFOV的格式列印出數據列表,並送回給數據提供者作校驗。如果需要,原始計算機數據還將根據數據提供者的規范要求進行校正。此後,JAFOV的輸入數據准備完畢,DBMS根據其數據定義將輸入數據送到JAFOV。到這個時候,資料庫中建立了兩個文件:數據文件和它的倒排文件。
圖2建立JAFOV資料庫的過程
2.3當前提供服務的方式
目前,JAFOV作為聯機資料庫已經運行於Kyoto大學數據處理中心的大型機上,提供服務的主要方式見圖3。可以通過直接或間接(即通過其它計算中心)聯接到中心的一台終端來使用資料庫。幾年前網際網路尚未建成,對資料庫的存取只能通過連接在大學計算機互聯網路(NACSIS)上的計算中心進行,而且還要對用戶進行驗證和收費。
圖3當前JAFOV提供服務的方式
圖4顯示的是目前JAFOV的使用方法。用戶使用telnet將終端直接或通過前面提及的其它計算中心間接地連接到Kyoto大學數據處理中心的主計算機上,以telnet方式登錄計算機,然後使用圖中所示命令互動式地查詢他需要的數據。
3WWW版本的JAFOV
3.1需要改進的地方及解決方法
現行的JAFOV系統有許多有待改進的問題,尤其是其服務方式。系統的使用應該更加容易、更加廣泛,並且還應提供除文檔處理以外的數據處理能力。存在的主要問題包括:
(1)不友好的用戶界面:現在的用戶界面是命令行方式(如圖4),對研究人員很不方便;
圖4當前JAFOV的使用方式
(2)服務受限制:使用JAFOV之前需要注冊到NACSIS的某一計算中心,也就是說只有注冊的用戶才能使用資料庫;
(3)建立和維護多媒體資料庫困難;
(4)在大型機上建立和維護JAFOV成本太高。
而WWW技術為這些問題提供了很好的解決方案:
(1)可以使用WWW瀏覽器漂亮、友好的圖形用戶界面;
(2)通過網際網路進行二進制數據變換很方便;
(3)提供很好的圖像文件顯示;
(4)通過網際網路可以實現更廣范圍的存取。
為此,我們試著開發了JAFOV的一個WWW版本,其規范要求和功能在下文描述。
圖5JAFOV的WWW服務簡圖
3.2JAFOV的WWW服務概貌
JAFOV的WWW服務框架見圖5。當用戶使用WWW瀏覽器通過網際網路訪問到伺服器時,JAFOV的首頁(圖6)顯示在其計算機上。用戶在該頁上輸入搜索條件並提交頁面,然後與條件匹配的記錄/標本被檢索出來,並將其登記號以可點擊按鈕(圖7)的形式顯示在客戶計算機上。用滑鼠單擊任一登記號,可以顯示該記錄的內容,見圖8。
圖6JAFOV的WWW服務首頁
圖7查詢JAFOV得到的結果記錄列表
圖8記錄的內容
上例顯示的查找過程與圖4所示例子相同。毫無疑問,這里顯示的方法比當前正在使用的方法對用戶要友好得多。
3.3WWW版JAFOV的DBMS
在本項研究中,我們開發了一個原始DBMS,並以此建立了WWW版JAFOV的一個原始資料庫。WWW版JAFOV的結構見圖9,它由兩類文件組成,即主文件和附加文件。主文件包含文檔數據和圖像數據文件名。篇幅長的文檔數據如參考文獻也可以文件形式單獨存儲,而在主文件中只存儲相應的文件名。雖然這類數據不能被檢索,但可以使查詢時間更短。圖像數據是作為附加文件存儲的。
圖9WWW版JAFOV資料庫的結構
主文件是一個文本型簡單文件,其中定義了數據項/域。它由「項/域定義記錄」和「標本數據記錄」組成。項/域定義記錄以CSV(即以逗號分隔的變數)的形式置於文件的第一個記錄。接下去是與項/域定義記錄有相同格式和順序的標本數據記錄。一個標本使用一個記錄。文件可以由任意一種文本編輯器生成。
在檢索生成的頁面中,圖像和文本文件以超文本形式連接起來。頁面中嵌入了一個標志,它連接到圖像或文本文件。當點取該標志時可以顯示與之連接的圖像或長文本數據。標志在頁面上以可點取的按鈕形式顯示。
3.4系統的查找過程
一般說來,WWW服務中的數據檢索通過公共網關介面(CGI)來處理,如圖10。通過使用HTML的表功能生成的頁面顯示在客戶計算機的WWW瀏覽器上。當用戶在頁面中輸入搜索條件並按「發送」按鈕後,條件通過CGI介面送到DBMS,數據搜索開始。檢索到的數據以HTML文件的格式送回客戶端並顯示在客戶計算機上。
圖10通過WWW進行信息檢索的通用機制
圖11顯示的是我們開發的系統中資料庫檢索及結果顯示的機理。系統基本上使用CGI介面。首先,用戶輸入的條件通過CGI送到數據檢索模塊。模塊在數據主文件中查找數據,並生成一個臨時文件和一個HTML文件,檢索到的記錄在HTML文件中以可點取按鈕(圖7)的形式列出來。檢索中可以使用多個查找條件,但條件之間只能是「與」的關系。
然後伺服器把模塊生成的HTML文件送回客戶端。用戶可以用滑鼠單擊記錄以顯示查到的詳細資料。當單擊任一標本登記號時,信息也是通過CGI送到顯示模塊。模塊使用選定的文件生成HTML格式的顯示頁面,並將它送回客戶端。於是,與記錄有關的圖像就通過相應的文件名連接到頁面上。
圖6~8是執行檢索的一個例子。圖6是用戶輸入查詢條件的頁面,即首頁。圖7是輸入條件為「『名字』中包含『NAUMANNI』」時獲得的查詢結果。查詢得到了兩個標本並顯示為圖中可點取的按鈕。這一頁通過圖11中的數據查詢模塊生成。同時,檢索到的數據其全部內容保存在圖11中的選定數據文件中。圖8是單擊圖7中按鈕後顯示的記錄內容。這一頁通過圖11中的顯示模塊生成,它從選定文件中檢索出數據並使用一個模板來生成本頁。
4結論
在本項研究中,我們通過使用WWW技術開發了一個基於網際網路的原型系統,很好地改進了JAFOV資料庫和其提供服務的方式。改進的方麵包括:
(1)顯著改善了用戶界面,用戶對系統的使用更加方便;
(2)使用資料庫的范圍變得更為廣泛,因為WWW服務不需要預先注冊,所有能連接到網際網路上的客戶都能使用;
(3)資料庫可以像處理文本數據那樣方便地處理圖像數據。
這些改進很好地解決了JAFOV當前版本中存在的大部分問題。
然而,要使這個系統在網際網路上實際運行,還有一些問題需要解決,這些問題主要包括:
(1)查詢數據需要的時間偏長;
數學地質和地質信息
(2)本項研究中開發的DBMS可以達到的實際容量是1000個記錄,當存儲記錄數超過該數目時,數據查詢將花費更長的時間。
通過使用功能更強大的DBMS如RDBMS作為搜索引擎,這些問題可以得到解決。因此,我們正在使用RDBMS來開發實用型系統。
致謝筆者衷心感謝Toyo信息系統有限公司的Shintaro Inoue先生,他參與了本系統的開發,還要感謝CSK有限公司的Koushiro Miyauchi先生,他對本項研究中使用的計算機作了軟硬體配置與調試。(龔仁輝譯,陳建平校)
參考文獻
[1]T.Kamei,K.Yamamoto,and N.Nishiwaki.Database on Fossil Vertebrate Specimens Deposited in Japan:JAFOV.Bull.Data Proc.Cent.,Kyoto Univ.,1986,19(4):260~268(in Japanese).
[2]N.Nishiwaki.Database on Fossil Specimens Deposited in Japan.Proc.3rd Intern.Conf.Geosci.Inf.orm.(Adelaide,Australia).Australian Mineral Foundation,1986,1:62~70.
[3]N.Nishiwaki,K.Yamamoto,and T.Kamei.Data Base on the Japanese Fossil Vertebrates.P.S.Glaeser(Ed.)Data for Science and Technology.Proc.8th Intern.CODATA Conf.(Jachranka,Poland),North-Holland Pub.Co.,1982,75~80.
[4]K.Yamamoto,N.Nishiwaki,and T.Kamei.JAFOV:Data Base on the Japanese Fossil Vertebrates(1).Geol.Data Proe.,1982,7:21~30(in Japanese).
[5]K.Yamamoto,N.Nishiwaki,and T.Kamei.Present Status and Future Extension of JAFOV:Database on the Japanese Fossil Vertebrates.Geol.Data Proc.,1987,12:142~150(in Japanese).
[6]K.Yamamoto,N.Nishiwaki,and Y.Kawamura.An Extension of the Japanese Fossil Vertebrates Database JAFOV.Bull.Data Proc.Center,Kyoto Univ.,1994,27(3):117~120(in Japanese).
[7]H.Horiike,Y.Ozawa,Y.Murao,and T.Watanabe.User's Manual:Database Retrieval with FAIRS.Data Proc.Cent.,Kyoto Univ,1984(in Japanese).
[8]L.Aranson.HTML Manual of Style.Ziff-Davis Press,Emeryville,California,1994.
B. 計算機網路安全設計內容
第一章 概述
1.1資料庫及其應用
自20世紀70年代以來,資料庫技術得到迅速發展.目前世界上已經有數百萬個資料庫系統在運行,其應用已經深入到社會生活的各個領域,從企業管理,銀行管理,資源管理,經濟預測一直到信息檢索,檔案管理,普查統計等.我國20世紀90年代初在全國范圍內裝備了12個以資料庫為基礎的大型計算機系統,這些系統分布在郵電,計委,銀行,電力,鐵路,氣象,民航,情報,公安,軍事,航天和財稅等行業.
現在,資料庫技術還在不斷發展,並且不斷的與其它計算機技術相互滲透.資料庫技術與網路通信技術相結合,產生了分布式資料庫系統.資料庫技術與面象對象技術相結合,產生了面向對象資料庫系統等各種資料庫系統.
在人類邁向21世紀知識經濟的時候,信息變為經濟發展的戰略資源,信息技術已成為社會生產力重要的組成部分.人們充分認識到,資料庫是信息化社會中信息資源管理與開發利用的基礎.對於一個國家,資料庫的建設規模,使用水平已成為衡量該國信息化程度的重要標志.因此,資料庫的學習是非常重要的.
1.2資料庫系統
資料庫系統本質上是一個用計算機存儲記錄的系統。資料庫本身可被看作為一種電子文件櫃:也就是說,它是收集計算機數據文件的倉庫或容器。系統用戶可以對這些文件執行插入數據、檢索數據、更改數據、刪除數據等一系列操作。
總之,資料庫系統是一個計算機存儲記錄的系統,即,它是一個計算機系統,該系統的目標存儲信息並支持用戶檢索和更新所需要的信息。圖1-2是一個資料庫系統的簡圖。
圖1-2 資料庫系統簡圖
1.3資料庫系統簡介扒塌迅
本人設計的是一個關於圖書館圖書管理的資料庫系統,通過這個系統管理員可以簡捷、方便的對圖書記錄查閱、增加、刪除等功能,而用戶也可以通過這個系統對進行圖書查詢、借閱、歸還等功能。
該資料庫應用程序按照用戶許可權和實現功能的不同分為兩部分:外部學生對資料庫的查詢訪問和內部管理人員對數據記錄的管理維護.每一部分中包含各自實現的各項功能,對每一項功能的實現,將按照窗體設計以及運行情況的順序逐一進行設計.
本系統採用microsoft access技術建立資料庫,使用VB技術建立數據源的鏈接,並且生成圖書管理的資料庫應用程序從而實現資料庫的管理功能。
第二章 資料庫系統設計
2.1資料庫設計概述
計算機信息系統以資料庫為核心,在資料庫管理系統的支持下,進行信息的收集、整理、存儲、檢索、更新、加工、統計和傳播等操作。
對於資料庫應用開發人員來說,為使現實世界的信息流計算機話,並對計算機話的信息進行各種操作,就是如何利用資料庫管理系統、系統軟體和相關硬體系統,將用戶的要求轉化成有效的數據結構,並使資料庫結構易於實現用戶新的要求的過程。
確切的說,資料庫設計是指對於一個給定的應用環境,提供一個確定最優數據模型與衫灶處理模式的邏輯設計,以及一個確定資料庫存儲結構與存取方法的物理設計,建立起既能反映現實世界信息和信息聯系,滿足用戶數據要求和加工要求,有能被某個資料庫管理系統所接受,同時能實現系統目標,並有效存取數據的資料庫。
2.2資料庫設計周期
根據軟體工程的思想,資料庫設計的周期可以劃分為六個階段:
(1) 規劃階段
確定開發的總目標,給出計劃開發的軟體系統的功能、性能、可靠性以及接等方面的設想。
(2) 需求分析階段
認真細致地了解用戶對數據的加工要求,確定系統的功能與邊界。本階段的最終結果,提供一個可作為設計基礎的系統說明書,包括對軟硬體環境的要求和一整套完善的數據流程圖。
(3) 設計階段
把需求分析階段所確定的功能細化,主要工作是概念設計階段、邏輯設計階段、物理設計階段,然後,對每個階段內部設計詳細的流程。
(4) 程序編制階段
以一種或幾種特定的程序設計語言表達上一階段確定的各模塊控制流程。程序編制時應遵循結構化程序設計方法。
(5) 調試階段
對已編好的程序進行單元調試(分調),整體調試(聯調)和系統測試春此(驗收)。
(6) 運行和維護階段
這是整個設計周期最長的階段,其工作重點是收集和記錄系統實際運行的數據。在運行中,必須保持資料庫的完整性,必須有效的處理數據故障和進行資料庫恢復。同時解決開發過程的遺留問題,改正錯誤進行功能完善。
第三章 圖書管理系統具體設計
3.1圖書管理系統總體規劃
對於資料庫系統,規劃工作是十分必要的。規劃的好壞將直接影響到整個圖書管理系統的成功與否,資料庫設計中的規劃階段的主要任務是建立資料庫的必要性及可行性分析,確定資料庫系統在整個圖書管理系統的地位。
根據圖書管理資料庫對技術人員和管理人員的水平、數據採集和管理活動以及借閱者的計算機素質的要求;資料庫技術對計算機系統的軟硬體的要求。決定把資料庫管理系統設計成為一個綜合的資料庫。此資料庫包括所有操作人員的所有活動功能。因為,此圖書管理系統應用界面較簡單、功能單一。所以,用一個綜合的資料庫就能滿足圖書管理要求,而且實現容易。
因此,圖書管理系統可以按照用戶許可權和實現功能的不同分為兩部分:外部學生對資料庫的查閱訪問和內部管理人員對圖書記錄的管理維護。但是,這兩部分都調用的是同一資料庫,只不過內部管理人員能實現所有管理功能,而外部學生訪問資料庫時,一些功能被屏蔽,只能進行查閱。
3.2 需求分析
3.2.1需求描述與分析
設計一個性能良好的資料庫系統,明確應用環境對系統的要求是首要的和最基本的。特別是數據應用非常廣泛,非常復雜,要是事先沒有對信息進行充分和細致的分析,這種設計就很難取得成功。
通過需求分析階段對圖書管理系統的整個應用情況作全面的、詳細的調查,確定圖書管理的目標,收集支持系統總的設計目標的基礎數據和對這些數據的要求,確定用戶的需求,並把這些寫成用戶和資料庫設計者都能夠接受的文檔。
事實上,需求分析是資料庫開發中最難的任務之一。因為,第一,系統本身是可變的,用戶的需求必須不斷調整,使之與這種變化相適應。第二,用戶很難說清某部分工作的功能處理過程。所以,設計人員必須認識到:在整個需求分析以及系統設計過程中,用戶參與的重要性,通過各種方法展開調查分析。
3.2.2需求分析的步驟
需求分析大致可分為三步來完成,即需求信息的收集、分析整理和評審通過。
(1)需求信息的收集
需求信息的收集又稱為系統調查。為了充分地了解用戶可能提出的要求,在調查研究之前,要做好充分的准備工作,要了解調查的目的、調查的內容和調查的方式。
1) 調查的目的
首先,要了解組織的機構設置,主要管理活動和職能。其次,要確定組織的目標,大致管理流程和任務范圍劃分。
因此,圖書管理系統主要是通過對現有的圖書管理系統進行考察、研究。並且通過和圖書管理人員、學生交流來完善管理功能。
2) 調查的內容
外部要求:信息的性質,響應的時間、頻度和如何發生的規則,以及圖書管理的要求,安全性及完整性要求。
管理的現狀:即圖書管理信息的種類,信息流程,信息的處理方式,各種圖書服務工作過程。
組織機構:了解圖書管理機構的作用、現狀、存在的問題,及是否適應計算機管理。
3) 調查方式
通過對圖書管理人員的訪問、交談可獲得圖書管理高層的、內部的管理需求,以及圖書管理的管理目標、未來圖書管理發展變化趨勢和長遠規劃的有關信息。
並且,還可通過具體借閱活動,了解借閱的流程、借閱的控制方式、日常管理信息,對圖書管理系統有一個深刻得了解。
(2)需求信息的分析整理
要想把收集到的信息(如文件、圖表、票據、筆記)轉化為下一階段設計工作可用的形式信息,必須對需求信息做分析整理的工作。
C. 我在網站上提供的信息後台可以看見嗎
大體看懂了你的意思
你在前台提交數據,後台登陸後也可管理,返蠢看到數據,對么?
這些都返悔是利用漏世正資料庫來實現的:
畫個簡圖如下:
前台-->提交數據到--->資料庫<----後台管理讀取資料庫(觀看)
明白了否?
D. Linux認證的概念
Linux認證的概念
RHCA(Red Hat Certified Architect),是RedHat公司在2004年推出的頂級認證,也是Linux界公認的操作系統最高級認證。下面是我整理的關於Linux認證的概念,歡迎大家參考!
Linux用戶認證方法簡介
當今IT環境中,任何計算機系統都要充分考慮設計、使用和運行過程中的安全性。所以在目前主流操作系統的各個環節當中都增加了很多安全方面的功能和特性,而在眾多的安全特性和功能中有相當多的技術是確保用戶鑒別和身份認證方面的安全性的。
所謂用戶鑒別,就是用戶向系統以一種安全的方式提交自己的身份證明,然後由系統確認用戶的身份是否屬實的過程。換句話說,用戶鑒別是系統的門戶,每個用戶進入到系統之前都必須經過鑒別這一道關。 而所謂認證安全,簡而言之就是計算機系統確認了用戶是經過授權的合法用戶之後才能允許訪問。安全認證最常用的方式是比對用戶輸入和預存於資料庫中的密碼。
不過在用戶進行身份鑒別和安全認證的過程中,肯定會涉及幾個核心問題。例如:
如何真正實現正確鑒別用戶的真實身份?
在鑒別用戶合法身份之後,如何確定用戶可以對哪些資源進行訪問?
如何控制用戶以何種方式來訪問計算機資源?
如何對用戶的安全訪問隨時隨地按需調整?
上述這些問題都是在設計鑒別和認證程序過程中需要充分考慮和精心設計的。而在Linux類的操作系統中,這些問題的處理實際上有一套完整的流程和機制。
在Linux類的操作系統中,最初用戶鑒別過程就像各種Unix操作系統一樣:系統管理員為用戶建立一個帳號並為其指定一個口令,用戶用此指定的口令登錄之後重新設置自己的口令,這樣用戶就具有了一個只有它自己知道的口令或者密碼。一般情況下,用戶的身份信息在Linux系統中存放在/etc/passwd文件當中,這實際上是一個擁有簡單格式的資料庫表,通過":"作為分隔符分隔出多個欄位,其中包括用戶的名稱、用戶ID、組ID、用戶說明、主目錄和登錄使用的shell等相關信息。而用戶口令經過加密處理後存放於/etc/shadow 文件中。也是一個格式類似的資料庫表,除了用戶名和經過加密之後的密碼之外,還包括多個對密碼有效期進行定義的欄位,包括密碼有效時間、密碼報警時間等。
用戶登錄的時候,登錄服務程序提示用戶輸入其用戶名和口令,然後將口令加密並與/etc/shadow 文件中對應帳號的加密口令進行比較,如果口令相匹配,說明用戶的身份屬實並允許此用戶訪問系統。這種思想基於只有用戶自己知道它的口令,所以輸入的口令是正確的話,那麼系統就認定它是所聲稱的那個人。
在Linux類操作系統中,定義用戶信息和密碼信息的欄位和格式都需要符合標準的Linux Naming Service Switch定義,即NSS定義。因此用戶信息只要保證滿足NSS規范,就可以來源於本地passwd和shadow之外的其它信息資料庫和認證源。所以在此基礎上還派生出一些其它認證解決方案。例如NIS、LDAP等,都可作為存放用戶信息的資料庫,而存放用戶口令或者鑒別用戶身份的資料庫,可以採用專用於網路環境的Kerberos以及智能卡鑒別系統等方式。
這一整套的鑒別和認證方案貌似無懈可擊,但是將這種解決方案真正應用到操作系統中的話就會發現一些問題:
第一,在操作系統上所包含的認證不僅僅只涉及到系統登錄和訪問,在系統外圍往往提供了眾多的應用程序,相當多的應用程序在訪問過程中是有認證需求的。那麼是否需要針對每一個應用程序都得加入認證和鑒別的功能?如果要,那麼無論從程序的開發和使用管理角度來講,工作量都將成倍增加;如果不要,則系統級的用戶鑒別和安全認證與應用程序沒有任何關系,意味著不管用戶是否需要登錄系統,但是對應用程序的訪問都將缺乏最基本的安全性。
第二,如果針對每一個應用程序都開發用戶鑒別和認證的功能,那麼一旦發現所用的.演算法存在某些缺陷或想採用另一種鑒別和認證方法時,開發者或者用戶都將不得不重寫(修改或替換)應用程序,然後重新編譯原程序。
所以,尤其是當實現鑒別功能的代碼以通常方法作為應用程序一部分一起編譯的時候,上述問題將十分突出。很明顯,傳統的身份鑒別和用戶認證方式一旦整合到實際的操作系統中,在實用當中缺乏靈活性。
鑒於以上原因,Linux操作系統的開發者和設計人員開始尋找一種更佳的替代方案:一方面,將鑒別功能從應用中獨立出來,單獨進行模塊化的設計,實現和維護;另一方面,為這些鑒別模塊建立標準的應用程序介面即API,以便眾多的應用程序能方便地使用它們提供的各種功能;同時,鑒別機制對上層用戶(包括應用程序和最終用戶)要求一定要是透明的,這樣可以對使用者隱藏其中比較復雜的實現細節。
可插拔認證模塊PAM的基本概念
事實上直到1995年的時候,SUN的研究人員才提出了一種滿足以上需求的方案,這就是可插拔認證模塊(Pluggable Authentication Mole--PAM)機制,並首次在其操作系統 Solaris 2.3上部分實現。
可插拔認證模塊(PAM)機制採用模塊化設計和插件功能,使用戶可以輕易地在應用程序中插入新的認證模塊或替換原先的組件,同時不必對應用程序做任何修改,從而使軟體的定製、維持和升級更加輕松。因為認證和鑒別機制與應用程序之間相對獨立。所以應用程序可以通PAM API來方便地使用PAM提供的各種鑒別功能而不必了解太多的底層細節。此外PAM的易用性也較強,主要表現在它對上層屏蔽了鑒別和認證的具體細節,所以用戶不必被迫學習各種各樣的鑒別方式,也不必記住多個口令;又由於它實現了多鑒別認證機制的集成問題,所以單個程序可以輕易集成多種鑒別機制,如Kerberos和Diffie - Hellman等認證機制,但用戶仍可以用同一個口令登錄而且感覺不到採取了各種不同的鑒別方法。
在廣大開發人員的努力下,各版本的UNIX系統陸續增加和提供了對PAM應用的支持。其中Linux-PAM是專門為Linux操作系統實現的,眾多的Linux操作系統包括Caldera、Debian、Turbo、Red Hat、SuSE 及它們的後續版本都提供對PAM的支持。而FreeBSD從3.1版本也開始支持PAM。而且除了具體實現方法上多少有些不同外,各種版本Unix系統上PAM的框架是相同的。所以我們在這里介紹的Linux的PAM框架知識具有相當的普遍性,而且在下文介紹其框架過程中可以看到,我們並沒有刻意區分Unix PAM與Linux PAM這兩個技術術語。
PAM的分層體系結構
PAM 為了實現其插件功能和易用性,採取了分層設計思想。就是讓各鑒別模塊從應用程序中獨立出來,然後通過PAM API作為兩者聯系的紐帶,這樣應用程序就可以根據需要靈活地在其中"插入"所需要的鑒別功能模塊,從而真正實現了在認證和鑒別基礎上的隨需應變。實際上,這一思路也非常符合軟體設計中的"高內聚,低耦合"這一重要思想。
PAM 的體系如下簡圖所示:
從上面的結構圖可以看出,PAM 的API起著承上啟下的作用,它是應用程序和認證鑒別模塊之間聯系的紐帶和橋梁:當應用程序調用PAM API 時,應用介面層按照PAM配置文件的定義來載入相應的認證鑒別模塊。然後把請求(即從應用程序那裡得到的參數)傳遞給底層的認證鑒別模塊,這時認證鑒別模塊就可以根據要求執行具體的認證鑒別操作了。當認證鑒別模塊執行完相應的操作後,再將結果返回給應用介面層,然後由介面層根據配置的具體情況將來自認證鑒別模塊的應答返回給應用程序。
上面描述了PAM的各個組成部分以及整體的運作機理。下面將對PAM中的每一層分別加以介紹。
第一層:模塊層。模塊層處於整個PAM體系結構中的最底層,它向上為介面層提供用戶認證鑒別等服務。也就是說所有具體的認證鑒別工作都是由該層的模塊來完成的。對於應用程序,有些不但需要驗證用戶的口令,還可能要求驗證用戶的帳戶是否已經過期。此外有些應用程序也許還會要求記錄和更改當前所產生的會話類的相關信息或改變用戶口令等。所以PAM在模塊層除了提供鑒別模塊外,同時也提供了支持帳戶管理、會話管理以及口令管理功能的模塊。當然,這四種模塊並不是所有應用程序都必需的,而是根據需要靈活取捨。比如雖然login可能要求訪問上述所有的四種模塊,但是su可能僅僅需要使用到鑒別模塊的功能即可。至於如何取捨則涉及到介面層的PAM API和配置文件,這部分內容將在後文中加以介紹。
第二層:應用介面層。應用介面層位於PAM結構的中間部分,它向上為應用程序屏蔽了用戶鑒別等過程的具體細節,向下則調用模塊層中的具體模塊所提供的特定服務。由上圖可以看出,它主要由PAM API和配置文件兩部分組成,下面將逐一介紹。
PAM API可以分為兩類:一類是用於調用下層特定模塊的介面,這類介面與底層的模塊相對應,包括:
鑒別類介面:pam_authenticate()用於鑒別用戶身份,pam_setcred()用於修改用戶的私密信息。
帳號類介面:pam_acct_mgmt()用於檢查受鑒別的用戶所持帳戶是否有登錄系統許可,以及該帳戶是否已過期等。
會話類介面:包括用於會話管理和記帳的 pam_open_session()和 pam_close_session()函數。
口令類介面:包括用於修改用戶口令的 pam_chauthtok()。
第二類介面通常並不與底層模塊一一對應,它們的作用是對底層模塊提供支持以及實現應用程序與模塊之間的通信等。具體如下:
管理性介面: 每組 PAM 事務從 pam_start()開始,結束於 pam_end()函數。介面 pam_get_item()和 pam_set_item()用來讀寫與 PAM 事務有關的狀態信息。同時,能夠用 pam_str()輸出 PAM 介面的出錯信息。
應用程序與模塊間的通訊介面:在應用程序初始化期間,某些諸如用戶名之類的數據可以通過 pam_start()將其存放在PAM介面層中,以備將來底層模塊使用。另外底層模塊還可以使用 pam_putenv()向應用程序傳遞特定的環境變數,然後應用程序利用pam_getenv()和pam_getenvlist()讀取這些變數。
用戶與模塊間的通訊介面:pam_start()函數可以通過會話式的回調函數,讓底層模塊通過它們讀寫模塊相關的鑒別信息,比如以應用程序所規定的方式提示用戶輸入口令。
模塊間通訊介面:盡管各模塊是獨立的,但是它們仍然能夠通過pam_get_item()和pam_set_item()介面共享某些與鑒別會話有關的公用信息,諸如用戶名、服務名、口令等。此外,這些API還可以用於在調用pam_start()之後,讓應用程序修改狀態信息。
讀寫模塊狀態信息的介面:介面pam_get_data()和pam_set_data()用以按照PAM句柄要求訪問和更新特定模塊的信息。此外,還可以在這些模塊後附加一個清除數據函數,以便當調用 pam_end()時清除現場。
由於 PAM 模塊隨需載入,所以各模塊始化任務在第一次調用時完成。如果某些模塊的清除任務必須在鑒別會話結束時完成,則它們應該使用 pam_set_data()規定清除函數,這些執行清除任務的函數將在應用程序調用 pam_end()介面時被調用。
;E. 理正岩土邊坡穩定性計算軟體如何導入dxf
1、首先在雲岩土數據同步工具目錄下,雙擊運行YYTSync應用程序文件。