『无欲则无求』Linux软件包管理 — 42、rpm包的校验和证书

    技术2022-07-11  139

    文章目录

    1、rpm包的校验(1)rpm包校验基本命令(2)校验某个系统文件是否被修改举例(3)验证内容中的8个信息的具体内容(4)有哪些文件类型? 2、rpm包的证书(1)数字证书(2)数字证书有以下特点(3)数字证书位置(4)数字证书导入

    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:描述文件(read me)。

    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
    Processed: 0.009, SQL: 9