数据库简图
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应用程序文件。