国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux重建RPM數據庫(修復損壞的RPM數據庫)

2024-08-27 23:57:02
字體:
來源:轉載
供稿:網友

我們知道,RPM 包是很多 linux 發行版(Fefora、RedHat、SuSE 等)采用的軟件包管理方式,安裝到系統中的各 RPM 包,其必要信息都會保存到 RPM 數據庫中,以便用戶使用 rpm 命令對軟件包執行查詢、安裝和卸載等操作。

但并非所有的用戶操作都“按常理出牌”,例如 RPM 包在升級過程被強行退出、RPM 包安裝意外中斷等誤操作,都可能使 RPM 數據庫出現故障,后果是當安裝、刪除、査詢軟件包時,請求無法執行,如圖 1 所示:
RPM數據庫出現故障
圖 1 RPM數據庫出現故障
這時就需要重建 RPM 數據庫,執行如下 2 步操作:

  1. 刪除當前系統中已損壞的RPM數據庫,執行如下命令:

    [root@localhost ~]# rm -f /var/lib/rpm/_db.*

  2. 重建 RPM 數據庫,執行如下命令:

    [root@localhost -]# rpm -rebuilddb

    這一步需花費一定時間才能完成。


除了用戶誤操作導致 RPM 數據庫崩潰,有些黑客入侵系統后,為避免系統管理員通過 RPM 包校驗功能檢測出問題,會更改 RPM 數據庫。

理論上,系統一旦被黑客“光顧”,則做的任何操作都將不可信。

對于這種情況,我們可以按照以下步驟對文件進行檢測:

  1. 對于要校驗的文件或命令,找到它屬于哪個軟件包,如下命令所示:

    [root@localhost ~]# rpm -qf/etc/rc.d/init.d/smb
    samba-3.0.23c-2

  2. 使用 -dump 選項查看每個文件的信息,使用 grep 命令提取對應文件信息:

    [root@localhost ~]# rpm -ql -dump samba|grep /etc/rc.d/init.d/smb
    /etc/rc.d/init.d/smb 2087 1157165946 b1c26e5292157a83cadabe851bf9b2f9 0100755 root root 1 0 0X

    此信息中,“2087”表示 smb 文件最初的字符數,“b1c26e5292157a83cadabe851bf9b2f9”表示 smb 文件的 MD5 校驗值,“0755 root root”表示文件權限及所有者、所屬組。

  3. 查看實際的文件,通過對比文件大小,所有人、所屬組、權限、MD5 校驗值等數據,判斷文件是否被改動過:

    [root@localhost ~]# ls -l /etc/rc.d/init.d/smb
    -rwxr-xr-x 1 root root 2087 Sep 2 2006/etc/rc.d/init.d/smb
    [root@localhost ~]# md5sum /etc/rc.d/init.d/smb
    b1c26e5292157a83cadabe851bf9b2f9 /etc/rc.d/init.d/smb

    以上校驗結果顯示,系統的 /etc/rc.d/init.d/smb 文件的信息和通過 rpm-ql-dump Samba 命令獲取的信息一致,因此可以斷定此文件沒有被入侵或更改。


注意,如果確信 RPM 數據庫遭到了修改,就要基于從光盤或者其他值得信賴的來源處獲得的 Samba RPM 文件進行檢査。

[root@localhost~]# rpm -ql --dump -p /mnt/cdrom/Fedora/RPMS/samba-3.0.23c-2.i386.rpm | grep /etc/rc.d/init.d/smb
warning: samba-3.0.23c-2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 412a&62
/etc/rc.d/init.d/smb 2087 1157165946 b1c26e5292157a83cadabe851 bf9b2f9 0100755 root root 1 0 0 X

得到的結果如果和基于 RPM 數據庫運行的命令結果不同,說明 RPM 數據庫已被更改,就需要修正文件錯誤和系統漏洞,重建 RPM 數據庫。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 土默特左旗| 象山县| 香港 | 邯郸市| 西安市| 城固县| 辉南县| 西吉县| 大关县| 舟曲县| 康平县| 独山县| 赞皇县| 云南省| 开远市| 定安县| 鹤岗市| 惠安县| 若羌县| 临泉县| 开平市| 云阳县| 苏尼特左旗| 通州区| 宜阳县| 察隅县| 德江县| 平昌县| 萝北县| 沭阳县| 河源市| 正阳县| 四子王旗| 郴州市| 新巴尔虎右旗| 贵德县| 张北县| 治县。| 资兴市| 兴安盟| 黔南|