『學了就忘』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)數字證書有以下特點

  1. 首先必須找到原廠提供的公鑰文件,然后進行安裝。
    這個公鑰文件在光盤和系統中都能找到。
  2. 再安裝RPM包時,會去提取RPM包中的證書信息,然后和本機安裝的原廠證書進行驗證。
  3. 如果驗證通過,則允許安裝;如果驗證不通過,則不允許安裝並警告。

(3)數字證書位置

其實在CentOS6.8的第一張光盤中就有,當然它默認也會放在系統中。

  1. 數字證書在光盤中的位置
    [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
    
    image
  2. 系統中的數字證書位置
    [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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM