今日更新
技术新闻
精彩专题
IBM软件技术专区
微软开发专区
技术文档中心
编程语言
网络通信
网络安全
LINUX/UNIX
软件工程与管理
数据库开发
WEB开发
企业应用与开发
移动开发
资源中心
原创专栏
开放系统世界
人才与培训
技术天地论坛
厂商列表
社区推荐

· 女性身体内部人体受孕..
· 十部顶级的变态与情色..
· 感情放纵让我毁了两个..
· 当我撞见姐姐和男友在..
· 卖淫少女惨遭泄愤民工..
· 偷拍街上的走光mm绝对..
· 百度打击google的广告
· 港娱乐圈与黑社会揭秘
赛迪网>>技术应用>>技术开发
关键字: RPM
来  源: 赛迪网
RPM应用之校验篇
作者:雨亦奇 赵建利 发文时间:2002.12.20
当用RPM安装,升级或卸载软件包时,RPM将所有的信息记录到数据库中。RPM的校验,就在于检查这些数据的完整性。一旦发现某个软件包被破坏(有文件丢失等情况),RPM就会报告错误。RPM通过这样一种机制,保证系统的正常运行。

RPM除了校验软件包的依赖关系,还校验每个文件,检查其属性是否正确。文件属性包括属主,属组,权限,MD5检查和,大小,主设备号,从设备号,符号连接及最后修改时间9项内容,其中每一项改变RPM都会发现。这9项属性RPM并非都校验,因为文件类型不同,其中某些属性会没有意义,RPM因而也不会去检查。这里有一个表格:



文件属性校验表,点击小图放大


注: -表示不校验,校表示校验。

校验时若发现文件丢失,RPM将输出"missing文件名"。若有属性方面错误,RPM将用如下格式输出:

SM5DLUGT c 文件名

其中: S : 表示文件大小;

M : 表示权限;

5 : 表示MD5检查和;

D : 表示主从设备号;

L : 表示符号连接;

U : 表示属主;

G : 表示属组;

T : 表示最后修改时间。

如果文件某属性正常,则会显示点(.)字符,否则的话将显示其代表字符。看下例:

# rpm -V bash
S.5....T /etc/bashrc
#


本例校验bash包(校验命令rpm -V下面将详细解释),结果发现/etc/bashrc文件有问题,输出的属性中:出现S字符,这表明文件大小改变了;出现5,这表明文件内容与原内容不同了;最后的T字符,则表明文件的最后修改时间改变了。通过这些属性字符,我们可以清楚地知道一个文件变动了什么,这是RPM的聪明之处。

格式中的c字符仅当校验文件为配置文件时才输出。如lze包中有/etc/inputme.def配置文件,如果我们人为改变其最后修改时间,RPM会发现什么:

# touch /etc/inputme.def
# rpm -V lze
.......T c /etc/inputme.def
#


注: 本例中用touch命令改变文件最后修改时间,然后校验,结果RPM发现了这个情况(以T表示出来),我们还看到了c字符,说明/etc/inputme.def是个配置文件。

命令格式

校验RPM格式的软件包,可使用如下命令格式:

rpm -V [校验选项1 校验选项2...] [软件包标识或包裹文件...]


注: -V可用--verify或-y代替,效果相同。

选项列表



文件属性校验表,点击小图放大


选项说明

通用选项的解释,请参见《RPM应用之安装篇》,本文不再赘述。下面对指定用选项做些解释:

选项分为以下几类:

一、包选择类

1. -a (或-all) : 校验所有已安装的软件包

本选项指示RPM校验系统中所有已安装的软件包:

# rpm -V -a
S.5....T c /etc/profile
.M....G. /usr/man/man1
missing/etc/rc.d/rc3.d/S85httpd
#


注: 本例校验后,RPM发现:

(1) 文件/etc/profile的大小(S),内容(5)及最后修改时间(T)已改变;

(2) 目录/usr/man/man1的权限(M),属组(G)已改变;

(3) 文件/etc/rc.d/rc3.d/S85httpd丢失(missing)。

2. -f (或--file) : 校验含指定文件的软件包

如果用户仅知道某个文件,但忘了它所在的软件包,又想校验这个包时,可用此选项。

# rpm -V -f /bin/cp /bin/bash
SM5....T /bin/ls
S.5....T /etc/bashrc
#


注: 本例校验含/bin/cp和/bin/bash文件的软件包,发现有两个文件(/bin/ls与/etc/bashrc)改变了。

3. -g (或--group) : 校验指定类别的软件包

本选项用于校验已安装的指定类别的软件包。关于软件的类别,请参见<<精通RPM之五--查询篇>>。

下例校验Applications/Editors与Applications/Text类别的软件包:

# rpm -V -g Applications/Editors Applications/Text
.......T c /etc/inputme.def
#


4. -p : 校验指定包裹文件

如果用户想校验某个RPM包所含文件在系统中的属性是否正常,则可用-p项指定该包裹文件进行校验, 如下例;

# rpm -V -p fileutils-4.0-3.i386.rpm
SM5....T /bin/ls
#


注: 本例中RPM发现fileutils包裹中的/bin/ls文件与当前系统中的/bin/ls文件有所不同(S大小,M权限,5内容,T时间)。

二、特殊要求类

1. --noscripts : 不执行校验脚本程序

有些RPM软件包中内置有校验脚本程序(verifyscript),它执行一些特殊的检查。当用户不想执行这类脚本程序时,需用--noscripts选项。

# rpm -V -v XFree86-libs
Looking for /usr/X11R6/lib in /etc/ld.so.conf... found
# rpm -V -v --noscripts XFree86-libs
#


注: 本例中第一个校验所输出的内容为XFree86-libs包内的校验脚本程序的输出,第二个命令中用了--noscripts选项,这使得校验脚本程序没有执行,因而也没有什么输出了。

2. --nodeps : 不检查依赖

RPM校验软件包时,默认情况是检查依赖,因为依赖是否正常关系到一个软件能否可靠运行。校验时选用--nodeps选项,用于指示RPM不检查依赖。注意,本选项主要针对软件包制作者,除非必要,不要使用此选项。我们可以通过校验时用-vv选项输出调试信息,从而可以看到是否检查依赖的区别:

# rpm -V -vv lze-6.02-1
D: opening database mode 0x0 in //var/lib/rpm/
D: record number 7253720
D:requires: /bin/sh satisfied by db file lists.
D:requires: ld-linux.so.2satisfied by db provides.
D:requires: libc.so.6satisfied by db provides.
D:requires: libc.so.6(GLIBC_2.0)satisfied by db provides.
D:requires: libc.so.6(GLIBC_2.1)satisfied by db provides.
.......T c /etc/inputme.def
# rpm -V -vv --nodeps lze-6.02-1
D: opening database mode 0x0 in //var/lib/rpm/
D: record number 7253720
.......T c /etc/inputme.def
#


注: 例子中,有requires的行为检查依赖,以D:开头的行为调试输出信息。

3. --nofiles : 忽略丢失文件的错误

默认情况下,RPM在校验时若发现文件丢失,会报出"missing 文件名"的错误。如果用户想忽略这方面的错误,请用--nofiles选项。请比较下例输出:

# rpm -V file
missing/usr/man/man1/file.1
# rpm -V --nofiles file
#


注: 使用此选项后RPM没有再报出文件丢失的错误。

4. --nomd5 : 忽略MD5检查和的错误

本选项用于指示RPM忽略文件内容的改变,即忽略MD5检查和错误。此选项常用于校验日志类型的文件(此类文件内容并不重要)。

请看下面的例子:

# rpm -V bash
S.5....T /etc/bashrc
# rpm -V --nomd5 bash
S......T /etc/bashrc
#


例子中校验bash包,不用--nomd5选项时,输出有5(MD5检查和),表示/etc/bashrc内容变化了,而采用--nomd5选项时,相应输出则为点(.),表示文件内容正常了。

(责任编辑 Sunny




赛迪网推出“IT博客”,花不到一分钟就完成注册
评论】 【推荐】 【 】 【打印】 【关闭

·Linux专区· ·黑客攻防·
· Linux下添加硬盘、分区、格式化任务详解
· FreeBSD服务器的安装与优化之优化篇
· 初学者入门:FreeBSD服务器的安装与优化
· 金企鹅杯两岸四地开源软件大赛圆满结束
· 如何提高Linux系统安全性的十大招数
· 构筑Linux防火墙之为个人用户设置防火墙
· 谁更安全?黑客眼中的防火墙与路由器
· 识破骗局 练就识别QQ活动真伪火眼金睛
· 应用安全大有可为:目的、挑战、总结
· 道高一尺魔高一丈:安全防御的动感魅力
· 警惕网络“内”院起火 积极谋求安内之路
· HHCTRL漏洞被黑客利用 疯狂传播木马
·中国信息化· ·成功案例·
· ERP普及化是饮鸩止渴 精细化才是应用之道
· 赛门铁克第八期《互联网安全威胁报告》解析
· 抢食“数字工商” 国产中间件杀出血路
· 从IBM等操作系统的发展看软件创新的启示
· 服务成就蓝色快车 品牌是怎样炼成的?
· 三大技术应用大会合为一体甲骨文上演三重奏
· 南阳教育城域网 拆掉学校间的“围墙”
· 金算盘助申意美步入信息化快车道
· 不为人知的索尼信息化 谁是幕后英雄?
· InforBus/Q在穗高速路联网收费系统中的应用
· J2EE构建最新金融理念和运作模式的网上银行
· 食品安全令人担心 信息化能否保驾护航
*姓  名: 更多资料 了解方案 认识厂商
*单位名称:
*联系电话:
*电子邮件:
    
◆ 相关文章   ◆ 站内热点推荐
· RPM应用之卸载篇
· RPM应用之认识篇
· 网管员论坛
· 开发者之家
· WLAN无限未来
· 我是如何掉进C#的……
· 中国“人件”非正式调查

   
合作网站: IBM dW中国网站 LinuxAID 软件工程专家网 中国系统分析员 UMLChina MATRIX Mobile2008 JavaResearch 华储网 UML软件工程组织 中国JAVA手机网 JAVA中文站 金山在线 海量科技