《LINUX的系统安全4205.docx》由会员分享,可在线阅读,更多相关《LINUX的系统安全4205.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LINUUX的系系统安全全王 忠 欧阳阳首承 任苏苏萍 黄中辉辉(成都信信息工程程学院现现代通信信技术研研究所, cheegnddu 66100041 )摘要:计计算机的的安全是是个热门门话题。计计算机的的攻击和和计算机机的安全全是矛与与盾的关关系。LLINUUX是类类UNIIX的操操作系统统,它具具有UNNIX的的所有特特性,在在安全性性上与UUNIXX一样具具有非常常严谨的的体系结结构。本本文从系系统安全全方面论论述了LLINUUX系统统上的安安全,分分别从物物理安全全、本地地安全、文文件系统统安全和和密码安安全等方方面论述述了LIINUXX的系统统安全结结构,给给出了一一些有效效的安全全
2、措施。关键词:Linnux,系系统安全全,操作作系统Systtem Seccuriity of LINNUXWangg Zhhongg OOuyaang Shoouchhengg RRen Suppingg HHuanngzhhongghuii(Cheengddu UUnivverssityy off Innforrmattionn Teechnnoloogy,CChenngduu 61100441)Absttracct:TThe seccuriity of thee coompuuterr iss a hott toopicc. TThe atttackk off thhe ccompput
3、eer aand seccuriity of thee coompuuterr arre rrelaatioons bettweeen llancce aand shiieldd. BBeinng aa kiind of thee opperaatinng ssysttemss off quuasii Uniix, Liinuxx haas thhe ccharractteriistiics of Uniix, andd itt issa veery strrictt annd ccauttiouus ssysttem strructturee wiith bettterr saafetty.
4、 Thiis ppapeer hhas disscusssedd thhe ssecuuritty oon LLinuux syysteem ffromm thhe ssecuuritty oof tthe sysstemm too seecurrityy off neetwoork, suuch as phyysiccs ssecuuritty, loccal seccuriity, fiile sysstemm seecurrityy annd ppasssworrd ssecuuritty, etcc.Annd iit pprovvidees ssomee meeasuure in en
5、ssuriing sysstemm seecurrityy.Keywwordds: Linnux, Syysteem ssecuuritty, Opeerattingg Syysteem1.引言言Linuux是国国际互联联网发展展的产物物。由于于Linnux操操作系统统是免费费,因此此Linnux在在我国的的应用领领域得到到很快的的发展。由由于投资资成本的的原因,许许多中小小企业渐渐渐开始始使用LLinuux于中中小型服服务器。国国际互联联网的发发展促进进了网络络资源共共享,以以此同时时也带来来了许多多网络安安全问题题。网络络安全成成了网络络用户关关心的一一个热点点问题。本本文就此此讨论如如何
6、构建建一个安安全的LLinuux系统统环境。2. 物物理安全全 电脑系系统的物物理安全全是首先先考虑的的安全问问题,物物理安全全是整个个安全的的第一道道关卡。2.1 BOIIS安全全BOISS是一个个非常底底层的软软件,它它配置了了或者说说操作着着x866平台的的底层硬硬件。LLILOO和其它它的Liinuxx引导程程序首先先访问BBOISS,再决决定如何何引导LLinuux机器器。可以以使用BBOISS上的安安全设置置去阻止止攻击者者操作机机器。可可以在机机器的BBOISS中设置置一个启启动密码码。这虽虽然不能能提供足足够的安安全,但但是它对对攻击者者起到了了一个威威慑作用用。有必必要取消消
7、启动顺顺序中的的从软盘盘启动的的顺序,设设置一个个进入BBOISS的密码码,防止止攻击者者进入BBOISS,对它它进行修修改。2.2 启动载载入程序序的安全全各种Liinuxx引导程程序也允允许设置置启动密密码。就就以LIILO为为例,已已经有了了密码和和受限制制的设置置。如果果以单用用户身份份登录,在在启动时时候被设设置了需需要输入入密码。像像在/eetc/lillo.cconff文件中中加入如如下设置置:(ppasssworrd=yyourrpassswoord;resstriicteed;)那那可限制制在启动动时候必必须输入入密码才才能启动动Linnux。2.3系系统锁定定很多时候候,会
8、有有什么急急事要离离开电脑脑一会,而而工作还还在继续续,不能能停下来来。可激激活系统统的锁定定程序,把把系统终终端锁定定,工作作还在继继续,而而攻击者者却不能能进入该该系统终终端。在在Linnux中中,锁定定程序是是xloock和和vloock。XXlocck是XX Wiindoow的锁锁定程序序,在LLinuux的各各个发行行版都支支持。在在X窗口口运行xxlocck,此此程序将将会锁定定系统,若若想进入入系统,必必须输入入密码。VVlocck是允允许锁定定一部分分或者全全部Liinuxx虚拟终终端。可可以锁定定正在工工作的终终端,而而不影响响其它的的终端。其其他人可可以从那那些未被被锁定的
9、的终端登登录,但但不可以以使用被被你锁定定了的终终端(除除非解锁锁了)。3. 本本地安全全通过一个个本地用用户帐号号获得访访问是系系统入侵侵者试图图获得rroott权限的的第一件件事情。对对于安全全松散的的系统,入入侵者会会利用各各种漏洞洞把他们们的一般般用户升升级为rroott用户。3.1用用户管理理(1).创建一一个新用用户每创建一一个新用用户,应应尽量分分配合适适的权限限给用户户(他们们能完成成工作的的权限)。这这样作会会使系统统变得安安全些。下下面是允允许让别别人合法法访问机机器的几几条好的的规则:尽量给给他们所所需要的的最小权权限;要要知道他他们什么么时候、什什么地方方登录,或或者他
10、们们登录信信息被记记录起来来;要把把那些不不使用的的帐号删删除或者者禁用;在所有有的计算算机和网网络上使使用相同同的用户户ID号号,对于于用户的的管理是是十分明明智的;产生用用户IDD号的组组应该被被绝对禁禁止,用用户帐号号也提供供了说明明性,这这对于组组帐号来来说是不不可能的的。增加加用户有有三个过过程:在/eetc/passswdd文件中中写入新新用户的的入口项项,同时时也在/etcc/shhadoow中创创建与该该用户相相关的密密码信息息;为新新登录用用户建立立一个HHOMEE目录;在/eetc/grooup中中为新用用户增加加一个入入口项;在/eetc/passswdd文件中中写入新新
11、的入口口项时,口令部部分可先先设置为为NOLLOGIIN,以免有有人做为为此新用用户登录录。在修改改文件前前,应mkkdirr /eetc/ptmmp,以免他他人同时时修改此此文件,新用户户一般独独立为一一个新组组,GIDD号与UUID号号相同(除非他他要加入入目前已已存在的的一个新新组),UIDD号必须须和其他他人不同同,HOMME目录录一般设设置在/usrr或/hhomee目录下下建立一一个以用用户登录录名为名名称的目目录做为为其主目目录。在在Linnux中中,/eetc/grooup文文件含有有关于小小组的信信息,/ettc/ppassswd中中的每个个GIDD在本文文件中应应当有相相应
12、的入入口项,入口项项中列出出了小组组名和小小组中的的用户。这样可可方便地地了解每每个小组组的用户户,否则必必须根据据GIDD在/eetc/passswdd文件中中从头至至尾地寻寻找同组组用户。/ettc/ggrouup文件件对小组组的许可可权限的的控制并并不是必必要的,因为系系统用UUID,GIDD(取自自/ettc/ppassswd)决定文文件存取取权限,即使/etcc/grroupp文件不不存在于于系统中中,具有相相同的GGID用用户也可可以小组组的存取取许可权权限共享享文件。小组就就像登录录用户一一样可以以有口令令。如果/etcc/grroupp文件入入口项的的第二个个域为非非空,则将被
13、被认为是是加密口口令,newwgrpp命令将将要求用用户给出出口令,然后将将口令加加密,再与该该域的加加密口令令比较。给小组组建立口口令一般般不是个个好作法法。第一,如果小小组内共共享文件件,若有某某人猜着着小组口口令,则该组组的所有有用户的的文件就就可能泄泄漏;其次,管理小小组口令令很费事事,因为对对于小组组没有类类似的ppassswd命命令。可用/usrr/liib/mmakeekeyy生成一一个口令令写入/etcc/grroupp。以下情情况必须须建立新新组:可能要要增加新新用户,该用户户不属于于任何一一个现有有的小组组.;(2)有的用用户可能能时常需需要独自自为一个个小组;(3)有的用
14、用户可能能有一个个SGIID程序序,需要独独自为一一个小组组;(4)有时可可能要安安装运行行SGIID的软软件系统统,该软件件系统需需要建立立一个新新组。要增加一一个新组组,必须编编辑该文文件,为新组组加一个个入口项项。由于用用户登录录时,系统从从/ettc/ppassswd文文件中取取GIDD,而不是是从/eetc/grooup中中取GIID,所以ggrouup文件件和口令令文件应应当具有有一致性性。对于一一个用户户的小组组,UIDD和GIID应当当是相同同的。多用户户小组的的GIDD应当不不同于任任何用户户的UIID,一般为为5位数数,这样在在查看/etcc/paasswwd文件件时,就可
15、根根据5位位数据的的GIDD识别多多用户小小组,这将减减少增加加新组,新用户户时可能能产生的的混淆。(2).删除用用户删除用户户与加用用户的工工作正好好相反,首先在在/ettc/ppassswd和和/ettc/ggrouup文件件中删除除用户的的入口项项,并删删除/eetc/shaadoww中与用用户相关关的信息息,然后后删除用用户的HHOMEE目录和和所有文文件。rm -r /ussr/llogiinnaame 删除整整个目录录树。如果用用户在/usrr/sppooll/crron/croontaabs中中有crronttab文文件,也应当当删除.(3).将用户户移到另另一个系系统这是一个个
16、复杂的的问题,不只是是拷贝用用户的文文件和用用户在/etcc/paasswwd文件件中的入入口项。首先一一个问题题是用户户的UIID和GGID可可能已经经用于另另一个系系统,若是出出现这种种情况,必须给给要移的的用户分分配另外外的UIID和GGID,如果改改变了用用户的UUID和和GIDD,则必须须搜索该该用户的的全部文文件,将文件件的原UUID和和GIDD改成新新的UIID和GGID。用fiind命命令可以以完成这这一修改改: fiind . -useer oolduuid -exxec choown newwuidd ; fiind . -grooup olddgidd -eexecc c
17、hhgrpp neewgiid ;也许还还要为用用户移走走其它一一些文件件:/uusr/maiil/uuserr和/uusr/spoool/croon/ccronntabbs/uuserr。如果用用户从一一个不是是本系统统管理员员的系统统移来,则应对对该用户户的目录录结构运运行程序序来检查查。一个不不安全系系统的用用户,可能有有与该用用户其它它文件存存在一起起的SUUID/SGIID程序序,而这个个SUIID/SSGIDD程序属属于另一一个用户户。在这种种情况下下,如果用用cpiio或ttar命命令将用用户的目目录结构构拷贝到到本系统统,SUIID/SSGIDD程序也也将会拷拷贝到本本系统而而
18、没有任任何警告告信息。应当在在允许用用户使用用新系统统以前先先删除这这种文件件的SUUID/SGIID许可可。总之,始终坚坚持检查查所移用用户的文文件总是是更安全全些。也可以以用suu命令进进入用户户的户头头,再拷贝贝用户文文件,这样文文件的所所有者就就是该用用户,而不是是roott。(4).用chhrooot()限制用用户如果的确确想限制制一个用用户,可用cchrooot()子程程序为用用户建立立一个完完全隔离离的环境境,改变了了进程对对根目录录的概念念,因此可可用于将将一个用用户封在在整个文文件系统统的某一一层目录录结构中中,使用户户无法用用cd命命令转出出该层目目录结构构,不能存存取文件
19、件系统中中其余部部分的任任何文件件。这种限限制方式式比加限限制的sshelll好得得多。用户使使用的命命令应由由系统管管理员在在新的rroott目录中中建立一一个biin目录录,并建立立用户可可用命令令的链到到系统的的/biin目录录中相应应命令文文件上(若在不不同的文文件系统统则应拷拷贝命令令文件)。还应建建立新的的passswdd文件,保留系系统登录录户头(为了使使ls -l正正确地报报告与受受限制的的子文件件系统中中的文件件相关的的正确登登录名)和用户户帐户,但系统统帐户的的口令改改为NOOLOGGIN以以使受限限制的用用户不能能取得系系统登录录的真实实口令,使破破密程程序的任任何企图图
20、成为泡泡影。utmmp文件件是whho所需需要的,该文件件含有系系统中已已登录用用户的列列表。新的/etcc/ pproffilee文件也也不是建建链文件件,以便受受限制的的用户可可以执行行不同的的启动命命令。/deev目录录中的终终端设备备文件被被链接到到新的/devv目录下下,因为命命令whho产生生输出时时要查看看这些文文件。在系统统V及以以后的版版本中,loggin命命令有cchrooot()的功功能。如果口口令文件件中用户户入口项项的登录录sheell域域(最后后一个域域)是*,loggin将将调用cchrooot()把用用户的根根目录设设置成为为口令文文件中用用户入口口项登录录目录
21、域域指定的的目录。然后再再调用eexecc()执执行looginn,新的llogiin将在在新子系系统文件件中执行行该用户户的登录录.chhrooot()并不是是把rooot封封锁在一一个子文文件系统统中,所以给给受限制制用户用用的命令令时应加加以考虑虑,具有rroott的SUUID许许可的程程序可能能会给予予用户rroott的能力力。应当将将这种可可能减低低到最小小程度,交给用用户使用用的命令令应当取取自清除除了SUUID陷陷井的系系统命令令。链接文文件可减减少磁盘盘占用区区,但要记记住,当与敌敌对用户户打交道道时,链接到到chrroott目录结结构(尤尤其是命命令)的的系统文文件是很很危险
22、的的。如果建建立一个个像这样样的限制制环境,应确保保对安装装到新的的/biin的每每条命令令都做过过测试,有些程程序可能能有系统统管理员员未曾想想到的出出乎意料料的执行行结果。为了使使这些命命令能运运行,还得在在加限制制的子文文件系统统中加服服务目录录或文件件如:/tmmp, /eetc/terrmcaap, /uusr/libb/teermiinfoo,/deev/mmem,/deev/kkmemm,/deev/sswapp,用户所所登录的的/deev中的的ttyy文件以以及/。有些程程序在子子文件系系统中运运行时不不会很好好,如果果将假脱脱机程序序和网络络命令拷拷贝到加加限制的的子文件件系
23、统中中,并放在在为两条条命令专专建的目目录层结结构下,它们可可能也运运行不了了。3.2.rooot安全全在机器上上,rooot帐帐号是最最重要的的帐号。此此帐号是是整台机机器的超超级管理理员帐号号,也可可能是网网络上其其它机器器的超级级管理员员帐号。你你只有在在运行非非常短的的、特殊殊的任务务时候才才使用rroott帐号,应应尽量使使用普通通用户。以以rooot用户户登录即即使出现现很小的的错误,这这也可能能引出问问题。一一些系统统管理命命令只能能由超级级用户运运行。超级用用户拥有有其他用用户所没没有的特特权,超级用用户不管管文件存存取许可可方式如如何,都可以以读、写任何何文件,运行任任何程序
24、序。系统管管理员通通常使用用命令: /bbin/su 或以 rooot 进进入系统统从而成成为超级级用户。有有时候,一一些事情情必须是是rooot才能能执行的的,Liinuxx中提供供了suu命令,让让用户变变化身份份。可使使用此命命令换成成rooot用户户,去完完成任务务,然后后再推出出来,回回到原来来的用户户。(1).作为rroott运行的的程序在系统中中,有些程程序由系系统作为为rooot进程程运行。这些程程序并不不总是具具有SUUID许许可,因为其其不少程程序仅由由rooot运行行,系统管管理员需需要清楚楚这些程程序做什什么,以及这这些程序序还将运运行其它它什么程程序。a.启动动系统当
25、某些系系统(如如SCOO /XXENIIX)启启动时,是以被被称为单单用户的的方式运运行,在这种种方式中中普通用用户不能能登录,唯有的的进程是是iniit,swaappeer,以及一一些由系系统管理理员从控控制台运运行的进进程。系统的的单用户户方式启启动,使系统统管理员员能在允允许普通通用户登登录以前前,先检查查系统操操作,确保系系统一切切正常,当系统统处于单单用户方方式时,控制台台作为超超级用户户,命令揭揭示是#,有些系系统不要要确认超超级用户户口令就就认可控控制台是是rooot,给出#提示符符。这就可可能成为为一个安安全问题题。b.innit进进程系统总是是以某种种方式或或称为某某种级运运
26、行,系统有有若干种种运行级级,这些运运行级由由iniit进程程控制。系统启启动时以以单用户户方式运运行,也叫11级或SS级。对于其其他用户户登录进进入系统统,有一种种多用户户运行方方式。也叫22级.iinitt进程控控制系统统运行级级,它读入入文件/etcc/ iinitttabb,该文件件详细地地规定了了哪些进进程在哪哪一级运运行。当rooot敲敲入innit n(数数字),系统就就进入nn级。iniit读该该文件以以确定终终止哪些些进程,启动哪哪些进程程。有效的的运行级级的数值值是从00到6与与s。特特别注意意,由innit建建立的进进程以UUID为为0运行行(rooot)从/eetc/i
27、niittaab运行行的程序序也作为为rooot运行行,所以系系统管理理员要确确保自己己知道/etcc/innitttab中中的程序序做什么么工作,确保这这些程序序以及这这些程序序所在的的目录直直到/和和/ettc/iinitttabb除rooot外外无人可可写。c.进入入多用户户 当系统进进入多用用户方式式时,将初始化一一系列事事件,接着开开始执行行getttyss,允许其其他用户户登录进进入系统统。如果再再看看/etcc/innitttab文文件,会看到到getttyss定义在在运行级级2,至少三三个shhelll程序/etcc/brrc,/ettc/bbcheeckrrc,/ettc/r
28、rc*也也定义在在运行级级2。这些程程序都在在getttyss启动前前运行。这些sshelll程序序作为rroott运行,也不能能仅对rroott可写还还应当检检查shhelll程序运运行的命命令,因为这这些命令令也将作作为rooot运运行。d.shhutddownn命令用shuutdoown命命令关系系统,shuutdoown sheell程程序发送送警告通通知所有有用户离离开系统统,在给给定的期期限时间间到了了后,就终止止进程,拆卸文文件系统统,进入单单用户方方式或关关机状态态。一旦进进入单用用户方式式,所有的的getttyss停止运运行,用户再再不能登登录.进进入关机机状态后后可将系系统
29、关电电。shuutdoown仅仅能由作作为rooot登登录的用用户从系系统控制制台上运运行。所以任任何的sshuttdowwn运行行的命令令仅能对对rooot可写写。(2).系统VV的crron程程序 cronn在系统统是多用用户方式式时运行行,根据规规定的时时间安排排执行指指定的命命令,每隔一一分钟检检查一次次文件/usrr/liib/ccronntabb,寻找是是否有应应当运行行的程序序?如果果找到要要运行的的程序,就运行行该程序序,否则睡睡眠等待待一分钟钟。实际的的/ussr/llib/croontaab用于于根据全全天的规规则时间间表运行行程序,也可在在夜晚运运行白天天不愿运运行怕降降
30、低其他他用户速速度的程程序。通常由由croon运行行的程序序是如记记帐,存文件件这样的的程序。croon一般般在系统统进入多多用户后后由/eetc/rc启启动,当shhutddownn运行kkilllalll命令时时便终止止运行。由crron运运行的程程序作为为rooot,所以应应当注意意放什么么程序在在croontaab中,还要确确保/uusr/libb/crronttab和和该表中中列出的的任何程程序对任任何人不不可写。如果用用户需要要由crron执执行一个个程序,系统管管理员可可用suu命令在在croontaab表中中建立一一个入口口,使用户户的程序序不能获获得rooot的的权限。在系统
31、统V版本本2中,croon被修修改成允允许用户户建立自自己的ccronntabb入口,/ussr/llib/croontaab文件件不再存存在,由目录录/ussr/sspoool/ccronn/crronttabss中的文文件代替替。这些文文件的格格式与ccronntabb相同,但每个个文件与与系统中中的一个个用户对对应,并以某某用户的的名义由由croon运行行。如果想想限制能能建立ccronntabb的用户户,可在文文件/uusr/libb/crron/croon.aalloow文件件中列出出允许运运行crronttab命命令的用用户。任何未未列于该该文件的的用户不不能运行行croontaa
32、b。反之,若更愿愿意列出出不允许许运行ccronntabb命令的的用户,则可将将他们列列入/uusr/libb/crron/ crron.denny文件件中,未列于于该文件件的其他他用户将将被允许许建立ccronntabb。注意:若两个个文件都都存在,系统将将使用ccronn.allloww,忽略ccronn.deeny。如果两两个文件件都不存存在,则只有有rooot可运运行crronttab。所以,若要允允许系统统中的所所有用户户都可运运行crronttab命命令,应当建建立一个个空的ccronn.deeny文文件,如果ccronn.allloww也存在在,则删除除该文。这个版版本的ccro
33、nn命令的的安全程程度比前前一个高高,因为用用户只能能看自己己的crronttab,系统管管理员也也不必担担心其他他用户的的程序是是否会作作为rooot运运行,由于允允许每个个系统登登录用户户有自己己的crronttab,也简化化了对程程序必须须由crron运运行,但不必必作为rroott运行的的系统程程序的处处理.必必须确保保rooot的ccronntabb文件仅仅对rooot可可写,并且该该文件所所在的目目录及所所有的父父目录也也仅对rroott可写。(3). /eetc/proofille 文文件每当用户户(包括括rooot在内内)登录录时,由shhelll执行/etcc/prrofii
34、le文文件,应确保保这个文文件以及及从这个个文件运运行的程程序和命命令都仅仅对rooot可可写。4.文件件系统安安全4.1文文件系统统概述 文件系统统是系统统的心脏脏部分,提供了了层次结结构的目目录和文文件。文件系系统将磁磁盘空间间划分为为每10024个个字节一一组,称为(bloock)(也有有用5112字节节为一块块的,如:SCOO XEENIXX)。编号从从0到整整个磁盘盘的最大大块数,全部块块可划分分为四个个部分,块0称称为引导导块,文件系系统不用用该;块1称称为专用用块,专用块块含有许许多信息息,其中有有磁盘大大小和全全部块的的其它两两部分的的大小。从块22开始是是i节点点表,i节点点
35、表中含含有i节节点,表的块块数是可可变的,后面将将做讨论论。i节点点表之后后是空闲闲存储块块(数据据存储块块),可用于于存放文文件内容容。文件的的逻辑结结构和物物理结构构是十分分不同的的,逻辑结结构是用用户敲入入catt命令后后所看到到的文件件,用户可可得到表表示文件件内容的的字符流流。物理结结构是文文件实际际上如何何存放在在磁盘上上的存储储格式。用户认认为自己己的文件件是边疆疆的字符符流,但实际际上文件件可能并并不是以以边疆的的方式存存放在磁磁盘上的的,长于一一块的文文件通常常将分散散地存放放在盘上上。然而当当用户存存取文件件时,文件系系统将以以正确的的顺序取取各块,给用户户提供文文件的逻逻
36、辑结构构。当然,在系统统的某处处一定会会有一个个表,告诉文文件系统统如何将将物理结结构转换换为逻辑辑结构。这就涉涉及到ii节点了了,i节点点是一个个64字字节长的的表,含有有有关一个个文件的的信息,其中有有文件大大小,文件所所有者,文件存存取许可可方式,以及文文件为普普通文件件,目录文文件还是是特别文文件等。在i节节点中最最重要的的一项是是磁盘地地址表。该表中中有133个块号号,前100个块号号是文件件前100块的存存放地址址,这100个块号号能给出出一个至至多100块长的的文件的的逻辑结结构,文件将将以块号号在磁盘盘地址表表中出现现的顺序序依次取取相应的的块。当文件件长于110块时时又怎样样
37、呢?磁盘地地址表中中的第十十一项给给出一个个块号,这个块块号指出出的块中中含有2256个个块号,至此这这种方法法满足了了至多长长于2666块的的文件(2722,3884字节节)。如果文文件大于于2666块,磁盘地地址表的的第十二二项给出出一个块块号,这个块块号指出出的块中中含有2256个个块号,这2556个块块号的每每一个块块号又指指出一块块,块中含含2566个块号号,这些块块号才用用于取文文件的内内容。磁盘地地址中和和第十三三项索引引寻址方方式与第第十二项项类似,只是多多一级间间接索引引。这样,在系统统中,文件的的最大长长度是116,8842,7622块,即177,2446,9988,288
38、8字节,有幸是是是系统统对文件件的最大大长度(一般为为1到22M字节节)加了了更实际际的限制制,使用户户不会无无意中建建立一个个用完整整个磁盘盘窨所有有块的文文件。文件系系统将文文件名转转换为ii节点的的方法实实际上相相当简单单。一个目目录实际际上是一一个含有有目录表表的文件件:对于于目录中中的每个个文件,在目录录表中有有一个入入口项,入口项项中含有有文件名名和与文文件相应应的i节节点号。当用户户敲入ccat xxxx时,文件系系统就在在当前目目录表中中查找名名为xxxx的入入口项,得到与与文件xxxx相相应的ii节点号号,然后开开始取含含有文件件xxxx的内容容的块。4.2设设备文件件 系统
39、与边边在本系系统上的的各种设设备之间间的通讯讯,通过特特别文件件来实现现,就程序序而言,磁盘是是文件,MODDEM是是文件,甚至内内存也是是文件。所有连连接到系系统上的的设备都都在/ddev目目录中有有一个文文件与其其对应。当在这这些文件件上执行行I/OO操作时时,由系统统将I/O操作作转换成成实际设设备的动动作。例如,文件/devv/meem是系系统的内内存,如果ccat这这个文件件,实际上上是在终终端显示示系统的的内存。为了安安全起见见,这个文文件对普普通用户户是不可可读的。因为在在任一给给定时间间,内存区区可能含含有用户户登录口口令或运运行程序序的口令令,某部分分文件的的编辑缓缓冲区,缓
40、冲区区可能含含有用eed -x命令令解密后后的文本本,以及用用户不愿愿让其他他人存取取的种种种信息。在/ddev中中的文件件通常称称为设备备文件,用lss /ddev命命令可以以看看系系统中的的一些设设备:acuuo呼叫叫自动拨拨号器cconssolee系统控控制台;dskknn块块方式操操作磁盘盘分区kkmemm核心内内存;memm内存llp打印印机;mtoo块方式式操作磁磁带rddsknnn流方方式操作作的磁盘盘分区rrmtoo流方式式操作的的磁带sswapp交换区区syssconn系统终终端tttynnn终端口口;x.25网网络端口口等等。4.3 mknnod命命令用于建立立设备文文件,
41、只有rroott能使用用这个命命令建立立设备文文件,其参数数是文件件名,字母cc或b分分别代表表字符特特别文件件或块特特别文件件,主设备备号,次设备备号。块特别别文件是是像磁带带,磁盘这这样一些些以块为为单位存存取数据据的设备备。字符特特别文件件是如像像终端、打印机机、MODDEM,或者其其它任何何与系统统通讯时时,一次传传输一个个字符的的设备,包括模模仿对磁磁盘进行行字符方方式存取取的磁盘盘驱动器器.主设设备号指指定了系系统子程程序(设设备驱动动程序),当在设设备上执执行I/O时,系统将将调用这这个驱动动程序。调用设设备驱动动程序时时,次设备备号将传传递给该该驱动程程序(次次设备规规定具体体
42、的磁盘盘驱动器器,磁带驱驱动器,信号线线编号,或磁盘盘分区)。每种类类型的设设备一般般都有自自己的设设备驱动动程序。文件系系统将主主设备号号和次设设备号存存放在ii节点中中的磁盘盘地址表表内,所以没没有磁盘盘空间分分配给设设备文件件(除ii节点本本身占用用的磁盘盘区外)。当程序序试图在在设备文文件上执执行I/O操作作时,系统识识别出该该文件是是一个特特别文件件,并调用用由主设设备号指指定的设设备驱动动程序,次设备备号作为为调用设设备驱动动程序的的参数。4.4安安全考虑虑将设备处处理成文文件,使得程程序独立立于设备备,即程序序不必一一定要了了解正使使用的设设备的任任何特性性,存取设设备也不不需要
43、记记录长度度、块大小小、传输速速度、网络协协议等这这样一些些信息,所有烦烦人的细细节由设设备驱动动程序去去关心考考虑,要存取取设备,程序只只须打开开设备文文件,然后作作为普通通的文件件来使用用。从安全全的观点点来看这这样处理理很好,因为任任何设备备上进行行的I/O操作作只经过过了少量量的渠道道(即设设备文件件),用户不不能直接接地存取取设备,所以如如果正确确地设置置了磁盘盘分区的的存取许许可,用户就就只能通通过文件件系统存存取磁盘盘。文件系系统有内内部安全全机制(文件许许可)。不幸的的是,如果磁磁盘分区区设备得得不正确确,任何用用户都能能够写一一个程序序读磁盘盘分区中中的每个个文件,作法很很简
44、单,读一ii节点,然后以以磁盘地地址表中中块号出出现的顺顺序,依次读读这些块块号指出出的存有有文件内内容的块块。故除了了rooot以外外,决不要要使盘分分区对任任何人可可写。因为所所有者,文件存存取许可可方式这这样一些些信息存存放于ii节点中中,任何人人只要具具有已安安装分区区的写许许可,就能设设置任何何文件的的SUIID许可可,而不管管文件的的所有者者是谁,也不必必用chhmodd()命命令,还可避避过系统统建立的的安全检检查。以上所所述对内内存文件件memm、kmeem和对对换文件件swaap也是是一样的的。这些文文件含有有用户信信息,一个耐耐心的程程序程员员可以将将用户信信息提取取出来。
45、要避免免磁盘分分区(以以及其它它设备)可读可可写,应当在在建立设设备文件件前先用用umaask命命令设置置文件建建立屏蔽蔽值。一般情情况下,系统上上的终端端口对任任何人都都是可写写的,从而使使用户可可以用wwritte命令令发送信信息。虽然wwritte命令令易引起起安全方方面的问问题,但大多多数用户户觉得用用wriite得得到其他他用户的的信息很很方便,所以系系统将终终端设备备的存取取许可设设置成对对所有用用户可写写。/deev目录录应当是是7555存取许许可方式式,且属rroott所有,不允许许除rooot外外的任何何用户读读或写盘盘分区的的原则有有一例外外,即一些些程序(通常是是数据库库
46、系统)要求对对磁盘分分区直接接存取,解决这这个问题题的经验验的盘分分区应当当由这种种程序专专用(不不安装文文件系统统),而且应应当告知知使用这这种程序序的用户户,文件安安全保护护将由程程序自己己而不是是文件系系统完成成。4.5ffindd命令findd命令用用于搜索索目录树树,并对对目录树树上的所所有文件件执行某某种操作作,参数是是目录名名表(指指出从哪哪些起点点开始搜搜索),还可给给出一个个或多个个选项,规定对对每个文文件执行行什么操操作fiind . -priint将将列出当当前工作作目录下下的目录录树的每每一个文文件;finnd / -uuserr boob -priint将将列出在在系
47、统中中可找到到的属于于bobb用户的的所有文文件;finnd /usrr/boob -perrm 6666 -prrintt将列出出/ussr/bbob目目录树下下所有存存取许可可为6666的文文件。若将6666改改为-6666则则将列出出所有具具有包含含了6666在内内的存取取许可方方式的文文件(如如7777);finnd /usrr/boob -typpe bb -pprinnt将列列出/uusr/bobb目录树树下所有有块特别别文件(c为字字符特别别文件);finnd/-useer rroott -ppermm -440000 -eexecc lss -ll ,是一个个较复杂杂一点的的命
48、令,-exxec COMMMANND ;允许对对所找到到的每个个文件运运行指定定的命令令COMMMANND。若COOMMAAND中中含有,则将由ffindd所找到到的文件件名替换换。COMMMANND必须须以;结束.。以上举举例介绍绍finnd的用用法,各选项项可组合合使用以以达到更更强的功功能。4.6 seccuree程序系统管理理员应当当作一个程程序以定定期检查查系统中中的各个个系统文文件,包括检检查设备备文件和和SUIID、SGIID程序序,尤其要要注意检检查SUUID、SGIID程序序,检查/etcc/paasswwd和/etcc/grroupp文件,寻找久久未登录录的户头头和校验验各重要要文件是是否被修修改。4.7 nchheckk命令用于检查查文件系系统,只用一一个磁盘盘分区名名作为参参数,将列出出i节点点号及相相应的文文件名。i节点点相同的的文件为为链接文件。注意所所列出的的清单文文件名与与mouunt命命令的第第一个域域相同的的文件名名前部分分将不会会列出来来。因为是是做文件件系统内内部的检检查,nchheckk并不知知道文件件系统安安装点以以上部分分的目录录。也可用用此命令令来搜索索文件系系统中所所有的SSUID