RPM 验证与数位签章
验证的功能主要在于提供系统管理员一个有用的管理机制!作用的方式是‘ 使用 /var/lib/rpm 底下的资料库内容来比对目前 Linux 系统的环境下的所有套件档案 ’也就是说,当您有资料不小心遗失, 或者是因为您误杀了某个套件的档案,或者是不小心不知道修改到某一个套件的档案内容, 就用这个简单的方法来验证一下原本的档案系统吧! 好让您瞭解这一阵子到底是修改到哪些档案资料了!验证的方式很简单:
[root@linux ~]# rpm -Va
[root@linux ~]# rpm -V 已安装的套件名称
[root@linux ~]# rpm -Vp 某个 RPM 档案的档名
[root@linux ~]# rpm -Vf 在系统上面的某个档案
参数:
-V :后面加的是套件名称,若该套件所含的档案被更动过,才会列出来;
-Va :列出目前系统上面所有可能被更动过的档案;
-Vp :后面加的是档案名称,列出该套件内可能被更动过的档案;
-Vf :列出某个档案是否被更动过~
范例:
范例一:列出你的 Linux 内的 logrotate 这个套件是否被更动过?
[root@linux ~]# rpm -V logrotate
# 如果没有出现任何讯息,恭喜你,该套件没有被更动过。
# 如果有出现任何讯息,才是有出现状况啊!
范例二:查询一下,你的 /etc/crontab 是否有被更动过?
[root@linux ~]# rpm -Vf /etc/crontab
S.5....T c /etc/crontab
# 瞧!因为有被更动过,所以会列出被更动过的资讯!
好了,那么我怎么知道到底我的档案被更动过的内容是什么?呵呵!简单的说明一下吧! 例如,我们检查一下 logrotate 这个套件:
[root@linux ~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.1
/usr/share/doc/logrotate-3.7.1/CHANGES
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status
# 呵呵!共有八个档案啊!
[root@linux ~]# rpm -V logrotate
..5....T c /etc/logrotate.conf
# 上面的资讯是这样的:
S :file Size differs
档案的容量大小是否被改变
M :Mode differs (includes permissions and file type)
档案的类型或档案的属性,如是否可执行等参数已被改变
5 :MD5 sum differs
MD5 这一种加密防骇的属性已被改变
D :Device major/minor number mis-match
装置名称已被改变
L :readLink(2) path mis-match
Link 属性已被改变
U :User ownership differs
档案的所属人已被改变
G :Group ownership differs
档案的所属群组已被改变
T :mTime differs
档案的建立时间已被改变
所以,如果当一个档案所有的资讯都被更动过,那么他的显示就会是:
SM5DLUGT c filename
至于那个 c 代表的是‘ Config file ’的意思,也就是档案的类型,档案类型有底下这几类:
* c :设定档(config file)
* d :文件资料档(documentation)
* g :鬼档案~通常是该档案不被某个套件所包含,较少发生!(ghost file)
* l :授权档案(license file)
* r :读我档案(read me)
经过验证的功能,您就可以知道那个档案被更动过。那么如果该档案的变更是‘预期中的’, 那么就没有什么大问题,但是如果该档案是‘非预期的’,那么是否被入侵了呢?呵呵! 得注意注意啰!
再来,由于数位签证的盛行,我们 Linux 的 RPM 也可以利用数位签证来判断待安装的套件档案是否有问题喔!一般我们使用的是 GPG 的金钥( public key )。应用的方法很简单,首先, 当我们想要使用某个团体释出的套件时,就需要将他们释出的 GPG 金钥先安装在自己的 Linux 系统上。然后,当安装该团体释出的套件时,就会检查两者的 key 是否相同,如果相同就直接安装,如果不同就会在萤幕上面显示讯息告知您并未安装该团体的 GPG 金钥!
安装金钥的方法很简单,例如 Red Hat 本身就有金钥在系统当中,安装如下:
[root@linux ~]# rpm --import /usr/share/rhn/RPM-GPG-KEY
一般来说,您的 Linux distributions 都会释出自己的 GPG Key 的,如果是 Red Hat 系统的话, 可以使用:
[root@linux ~]# locate GPG-KEY
来进行搜寻档案的工作,至于这些金钥的内容,我们可以这样查询喔:
[root@linux ~]# rpm -qa | grep gpg
libgpg-error-1.0-2
gpg-pubkey-4f2a6fd2-3f9d9d3b
[root@linux ~]# rpm -qi gpg-pubkey-4f2a6fd2-3f9d9d3b
Name : gpg-pubkey Relocations: (not relocatable)
Version : 4f2a6fd2 Vendor: (none)
Release : 3f9d9d3b Build Date: Sat Jun 25 22:13:00 2005
Install Date: Sat Jun 25 22:13:00 2005 Build Host: localhost
Group : Public Keys Source RPM: (none)
Size : 0 License: pubkey
Signature : (none)
Summary : gpg(Fedora Project )
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.4.1 (beecrypt-3.0.0)
mQGiBD+dnTsRBACwnlz4AhctOLlVBAsq+RaU82nb5P3bD1YJJpsAce1Ckd2sBUOJD11NUCqH
.....中间省略.....
=mJAx
-----END PGP PUBLIC KEY BLOCK-----
这样就能看到相关的资讯啰! ^_^
阅读(2000) | 评论(0) | 转发(0) |