『學了就忘』Linux軟體包管理 — 43、RPM包的校驗和證書

繁華似錦Fighting發表於2021-11-16

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

相關文章