软件测试技术

当前位置:首页 > 软件测试技术

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

RPM验证与数字签名(erifysignature)

验证(Verity的功能主要在于提供系统管理员一个有用的管理机制!作用的方式是「使用/a/ib/pm底下的数据库内容来比对目前Linux系统的环境下的所有软件档案」也就是说.当你有数据不小心遗失。或者是因为你误杀了某个软件的档案.或者是不小心不知道修改到某一个软件的档案内容。就用这个简单的方法来验证一下原本的文件系统吧!好让你了解这一阵子到底是修改到零些档案数据了!验证的方式很简单:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

好了。那么我怎么知道到底我的档案被更动过的内容是什么?例如上面的范例二。呵啊!简单的说明-下吧!例如。我们检查下logrotate这个软件:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

嫁会发现在档名之前有个c,然后就是一堆奇性的文字了。那个代表的是configuration。就是配置文件的意思。至于最前的八个信息是:

s :file Sie dffes档察的容量大小是否被改变

M :(Mode difers)档案的类型或档室的属性(rwa)是否被改变?如是否可执行等参数已被改变

5 :0MD5 sum dffes MD5这一一种指坟码的内容已经不同

D : (Device major/minor number mis-match)装的主次代码已经改变

L : (readLink2) path mis-match) Link路径已被改变

U : (User ownership difers)档察的所属人已被改变

G:(Group ownership diflerg档室的所属群组已被改变

T : (mTime dffes档案的立时间已被改变

所以。如果当一个配文件所有的信息都被更动过,那么他的显示就会是:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

至于那个c代表的是Config fle」的意思.也就是档案的类型,文件类型有底下这几类:

C :配置文件(config fe

●d :文件数据文件(pocumentaion]

●g :鬼档案-遇常是该档案不被某个软件所包含,较少发生! (ghost fle)

I :许可证文件license fe)

r :自述文件fead me)

经过验证的功能.你就可以知道那个档案被更动过。那么如果该档案的变更是「预期中的」那么就没有什么大问题。但是如果该档案是「非预抑的」, 那么是香被入慢了呢?可啊!得注意注意零! -般来说,配置文件(onfigure)被更动过是很正常的.万一你的binary program被更动过呢?那就得要特别特别小心啊!

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续


数字签名(digital signature)

谈完了软件的脸证后,不知道你有没有发现一一个问题,那就是.验证只能验证软件内的信息与/war/ib/ipmV/里面的数据库信息而已.如果该软件档案所提供的数据本身就有问题,那你使用验证的手段也无法确定该软件的正确性啊!那如何解决呢?在Tarballl与档案的验证方面,我们可以使用前一章谈到的md5指纹码来检查,不过.连指坟码他可能会被窜改的嘛!那怎办?没关系.我们可以通过数字签名来检验软件的来源的!

就像你自己的签名一样.我们的软件开发商原厂所推出的软件也会有一个商自己的签章系统!只是这个签章被数字化了而已。厂商可以数字签名系统产生一个专属于该软件的签章。井将该签的公钢(publikc key)释出。当你要安装一个RPM档索时:

1.首先你必须要先安装原厂释出的公钢档案:

2.实际安装原厂的RPM软件时,rpm 指今会去读取RPM档案的签信息,与本机系统内的签章信息比对,

3.若签掌相同则予以安装.若找不到相关的签信息时,则给予警告并且停止安装图。

我们CentOs使用的数字签名系统为GNU计划的GnuPG (GNU Privacy Guard, GPQI(注11。GPG 可以通过哈希运算,算出独一无二的专属密销系统或者是数字签名系统,有兴趣的朋友可以参考文来的延伸阅读,去了解一下GPG加密的机制握!这里我们仅简单的说明数字签名在RPM档案上的应用而已。而根据 上面的说明。我们也会知道首先必须要安装原厂释出的GPG数字签名的公钢档案啊! CentOs的数字签名位于:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

从上面的输出。你会知道该数字签名码其实仅是一个随机数而已,这个随机数对于数字签名有意义而已,我们看不懂啦!那么这个档案如何安装呢?通过底下的方式来安装即可喔!

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

由于不同版本GPG密钥档奉放的位可能不同.不过档名大多是以GPG-KEY来说明的。因此你可以简单的使用locate或find来找寻。如以下的方式来搜寻即可:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

那安装完成之后.这个密铜的内容会以什么方式星现呢?基本上都是使用pubkey作为软件的名称的!那我们先列出密钢软件名称后,再以-qi的方式来询看看该软件的信息为何:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

重点就是最后面出现的那一-申乱码啦!那可是作为数字签名非常重要的一环哩!如果你忘记加上数字签名。很可能很多原板软件就不始让你安装吗-除非你利用rpm时选择略过数字签名的选项。

ORPM反安装与重建数据库(rase/rebuildb

反安装就是将软件卸载啦!要注意的是,「解安装的过程一定要由最上层往下解除」, 以ip-pppee为例,这一个软件主要是依据Ppp这个软件来安装的,所以当你要解除PPp的时候.就必须要先解除ip-pppee才行!否则就会发生结构上的问题啦!这个可以由建筑物来说明。如果你要拆除五,六楼。那么当然要由六楼拆起。否则先拆的是第五楼时。那么上面的楼层难道会悬空?

移除的选项很简单。就通过-e即可移除。不过。很常发生软件属性相依导致无法移除某些软件的问题!我们以底下的例子来说明:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

从范例一一我们知道pam所提供的通式库是让非常多其他软件使用的。因此你不能移除pam。 除非将其他相依软件一口他全部移除!你当然也能加-nodeps来强制移除。不过。如此一来所有会用到pam通式库的软件。都将成为无法运作的程序。我想。你的主机也只好准备停机体假了吧!至于范例二中。由于pam-devel是依附于pam的开发工具你可以单独安装与单独移除啦 !

由于RPM档案常常会安装/移除开级等。某些动作或许可能会导致RPM数据库/war/ib/pmv内的档室破损。果如此的话。那你该如何是好?别担心。我们可以使用-ebuildb这个选项来重建一下数据库喔!作法如下:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

SRPM的使用: rpmbuild

谈完了RPM类型的软件之后。再来我们谈一谈包含了 Source code的SRPM该如何使用呢?假如今天我们由网络上面下载了一个SRPM的档案。该如何安装他?又。如果我想要修改这个SRPM里五原始码的相关设定值。又该如何订正与重新编译呢?此外,最需要注意的是.新版的rpm已经将RPM与SRPM的指令分开了,SRPM使用的是rpmbuil这个指令,而不是rpm喔!如果你是Red Hat 7.3以前的用户。那么请使用rpm来替代rpmbuils啦!

O利用状认值安装SRPM档案(--uidi-recmpilel

假设我下载了一个SRPM的档案。又不想要你订这个档案内的原始码与相关的设定值。那么我可以直接偏译并安装吗?当然可以!利用rpmbuild配合选项即可。选项主要有底下两个:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

不过。要注的是。这两个选项都没有修改过SRPM内的设定值。仅是通过再次编译来产生RPM可安装软件档案而已。- 般来说。如果编译的动作顺利的话。那么端译过程所产生的中间暂存盘都会被自动删除。如果发生任何错误。则该中问档案会被保留在系统上。等待用户的除错动作!那么。该如何除错呢?如果想要自行除错。或者是想要修改SRPM内的设定值时。就得要知道利用SRPM的时候,系统会动用到零些重要的口录了!底下我们就来谈一谈当处理 SRPM时,系统会使用到的口录。

OsRPM使用的路径与需要的软件

SRPM既然含有source code。 那么其中必定有配文件喝。所以首先我们必需要知道。这个SRPM在进行编译的时候会使用到哪些口录呢?这样一来才能够来修改嘛!你可以到你的/1s8/SC这个口录里面去看下,遇常每个distribution提供的录都不太相同。以CentOs 5.x为例.他是以/usr/src/redhat/为工作口录。Openlinux 则是以/usr/src/openlinux 为工作口录!无论如何。反正就是在/us/sc这个口录下就对了!好了,既然我们是Centos。请到/s/sc/redhat里头去看一 看呦:

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续

此外。在编译的过程当中,可能会发生不明的错误,或者是设定的错误,这个时候就会在/tmp底下产生一个相对应的错误档,你可以根据该错误档进行除错的工作呢!等到所有的问题都解决之后。也编译成功了。那么刚刚解压缩之后的档案.就是在/usr/src/tedhat/SPECS, souRcEs, BUILD等等的档案都会被杀掉.而只剩下放在/us/src/redhat/RPM5底下的档案了!

由于SRPM需要重新编译。而编译的过程当中。我们至少需要有make与其相关的程序。及gocc C++等其他的墙译用的程序语言来进行编译,更多说明请参考第二十二章原始码所需基础软件吧。所以,如果你在安装的过程当中没有选取软件开发工具之类的软件。呵啊!得重新拿出你的光盘。然后再安装收!哈哈!只是得要克服一大堆的属性相依的问题就是了-这问题待会儿可以使用yum来处理,嫁当然也可以先使用「yum groupinstall "Development Tools'」来安装开发软件。鸟哥这里假设嫁已经安装了该软件群组呼。

鸟哥的Linux私房菜 基础学习篇(第三版) (第二十三章)续


相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~