『学了就忘』Linux软件包管理 — 43、RPM包的校验和证书
目录
1、RPM包的校验
(1)RPM包校验基本命令
[root@localhost ~]# rpm -Va
选项:
-Va校验本机已经安装的所有软件包(一般不用,需要验证哪个包就单独验证。)
[root@localhost ~]# rpm -V 已安装的包名
选项:
-V校验指定RPM包中的文件(verify),常用。
[root@localhost ~]# rpm -Vf 系统文件名(通过rpm包安装出来的,自己创建的不行。)
选项:
-Vf校验某个系统文件是否被修改
(2)校验某个系统文件是否被修改举例
# 校验httpd软件包,可以看到如果新安装的软件,没有动过任何文件,验证是没有任何结果的。
[root@localhost ~]# rpm -V httpd
# 修改一下httpd配置文件,加一个空行。
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
# 再次验证
[root@localhost ~]# rpm -V httpd
S.5....T. c /etc/httpd/conf/httpd.conf
验证内容 文件类 型文件名
# 上边提示的信息是 /etc/httpd/conf/httpd.conf文件和刚装完的状态不同。
# 哪里不同,在`S.5....T.`提示了。
提示:
- 最前面共有8个信息内容,是表示验证内容的。
- 文件名前面的c是表示这是个配置文件(
configuration
)。- 最后是文件名。
(3)验证内容中8个信息的具体内容
S
:文件大小是否改变。M
:文件的类型或文件的权限(rwx)是否被改变。5
:文件MD5校验和是否改变(可以看成文件内容是否改变)。D
:设备的主从代码是否改变。L
:文件路径是否改变。U
:文件的属主(所有者)是否改变。G
:文件的属组是否改变。T
:文件的修改时间是否改变。
注意:
问什么验证了文件大小是否改变,还需要验证文件的内容是否改变?
也有可能没有新增或者删除文件的内容,只有修改了一个字母或者文字,源文件大小没有改变,但是文件的内容已经改变了。
(4)文件类型有哪些
c
:配置文件(config file
)。d
:普通文档(documentation
)。g
:“鬼”文件(ghostfile
),很少见,就是该文件不应该被这个RPM包包含(说明这个RPM包出现了异常)。l
:授权文件(license file
)。r
:描述文件(readme
)。
2、RPM包的证书
(1)数字证书
上面的校验方法只能对已经安装的RPM包中的文件进行校验,但是如果RPM包本身就被动过手脚,那么校验就不能解决问题了,我们就必须使用数字证书验证了。
(2)数字证书有以下特点
- 首先必须找到原厂提供的公钥文件,然后进行安装。
这个公钥文件在光盘和系统中都能找到。 - 再安装RPM包时,会去提取RPM包中的证书信息,然后和本机安装的原厂证书进行验证。
- 如果验证通过,则允许安装;如果验证不通过,则不允许安装并警告。
(3)数字证书位置
其实在CentOS6.8
的第一张光盘中就有,当然它默认也会放在系统中。
- 数字证书在光盘中的位置
[root@localhost ~ ] # ll /mnt/cdrom/RPM-GPG-KEY-Cent0S-6 -r--r--r--2 root root 17067月204:21/mnt/cdrom/RPM-GPG-KEY-CentOS-6
- 系统中的数字证书位置
[root@localhost ~ ] #ll /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 -rw-r--r-.1 root root 17066月2617:29/etc/pki/rpm-gpg/RPM-GPG-KEY-Cent0S-6
(4)数字证书导入
[root@localhost ~ ] # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
选项:
--import:导入数字证书
我们如何查询系统中安装好的数字证书呢?
命令如下:
[root@localhost ~ ] # rpm -qa | grep gpg-pubkey
gpg-pubkey-c105b9de-4e0fd3a3