7.8 Linux重建RPM數(shù)據(jù)庫(修復損壞的RPM數(shù)據(jù)庫)
我們知道,RPM 包是很多 linux 發(fā)行版(Fefora、RedHat、SuSE 等)采用的軟件包管理方式,安裝到系統(tǒng)中的各 RPM 包,其必要信息都會保存到 RPM 數(shù)據(jù)庫中,以便用戶使用 rpm 命令對軟件包執(zhí)行查詢、安裝和卸載等操作。

但并非所有的用戶操作都“按常理出牌”,例如 RPM 包在升級過程被強行退出、RPM 包安裝意外中斷等誤操作,都可能使 RPM 數(shù)據(jù)庫出現(xiàn)故障,后果是當安裝、刪除、査詢軟件包時,請求無法執(zhí)行,如圖 1 所示:
圖 1 RPM數(shù)據(jù)庫出現(xiàn)故障
這時就需要重建 RPM 數(shù)據(jù)庫,執(zhí)行如下 2 步操作:
刪除當前系統(tǒng)中已損壞的RPM數(shù)據(jù)庫,執(zhí)行如下命令:
[root@localhost ~]# rm -f /var/lib/rpm/_db.*
重建 RPM 數(shù)據(jù)庫,執(zhí)行如下命令:
[root@localhost -]# rpm -rebuilddb
這一步需花費一定時間才能完成。
除了用戶誤操作導致 RPM 數(shù)據(jù)庫崩潰,有些黑客入侵系統(tǒng)后,為避免系統(tǒng)管理員通過 RPM 包校驗功能檢測出問題,會更改 RPM 數(shù)據(jù)庫。
理論上,系統(tǒng)一旦被黑客“光顧”,則做的任何操作都將不可信。
對于這種情況,我們可以按照以下步驟對文件進行檢測:
對于要校驗的文件或命令,找到它屬于哪個軟件包,如下命令所示:
[root@localhost ~]# rpm -qf/etc/rc.d/init.d/smb samba-3.0.23c-2
使用 -dump 選項查看每個文件的信息,使用 grep 命令提取對應(yīng)文件信息:
[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 文件最初的字符數(shù),“b1c26e5292157a83cadabe851bf9b2f9”表示 smb 文件的 MD5 校驗值,“0755 root root”表示文件權(quán)限及所有者、所屬組。
查看實際的文件,通過對比文件大小,所有人、所屬組、權(quán)限、MD5 校驗值等數(shù)據(jù),判斷文件是否被改動過:
[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
以上校驗結(jié)果顯示,系統(tǒng)的 /etc/rc.d/init.d/smb 文件的信息和通過 rpm-ql-dump Samba 命令獲取的信息一致,因此可以斷定此文件沒有被入侵或更改。
注意,如果確信 RPM 數(shù)據(jù)庫遭到了修改,就要基于從光盤或者其他值得信賴的來源處獲得的 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
得到的結(jié)果如果和基于 RPM 數(shù)據(jù)庫運行的命令結(jié)果不同,說明 RPM 數(shù)據(jù)庫已被更改,就需要修正文件錯誤和系統(tǒng)漏洞,重建 RPM 數(shù)據(jù)庫。
linux 數(shù)據(jù)庫
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。