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是个配置文件。
命令参数讲解:
一、包选择类
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时间)。
试验验证一下:
我现在要检查netstat命令是否被修改或者替换:
1、先检查改命令是属于哪个软件包:
[root@test root# rpm -qf /bin/netstat net-tools-1.60-110.el6_2.x86_64
2、查看该文件是否被修改
rpm -V -f /bin/netstat 如果没有任何输出,表示文件没有被修改; rpm -Vv -f /bin/netstat #小写v参数,表示列出详细信息;
下图显示
net-tools-1.60-110.el6_2.x86_64
软件包里的文件没有被修改过
测试以上命令:
现在,我修改了/bin/netstat 的时间:
[test@test ~]$ sudo touch -c -m -t 201101110000 /bin/netstat
[test@test ~]$ rpm -V -f /bin/netstat .......T. /bin/netstat
该命令已经显示/bin/netstat文件的时间被修改,T表示时间
[test@test ~]$ rpm -Vv -f /bin/netstat
参考博文:
http://www.360doc.com/content/06/1227/16/15540_309086.shtml
谢谢博主分享。
本文出自 “为梦想而努力!” 博客,请务必保留此出处http://815632410.blog.51cto.com/1544685/1677736
原文地址:http://815632410.blog.51cto.com/1544685/1677736