Linux重建RPM数据库(RPM数据库损坏的解决方案)

Linux重建RPM数据库(RPM数据库损坏的解决方案),第1张

概述我们知道,RPM 包是很多 Linux 发行版(Fefora、RedHat、SuSE 等)采用的软件包管理方式,安装到系统中的各 RPM 包,其必要信息都会保存到 RPM 数据库中,以便用户使用 rpm 命令对软件包执行 我们知道,RPM 包是很多 linux 发行版(Fefora、RedHat、SuSE 等)采用的软件包管理方式,安装到系统中的各 RPM 包,其必要信息都会保存到 RPM 数据库中,以便用户使用 rpm 命令对软件包执行查询、安装和卸载等 *** 作。

但并非所有的用户 *** 作都“按常理出牌”,例如 RPM 包在升级过程被强行退出、RPM 包安装意外中断等误 *** 作,都可能使 RPM 数据库出现故障,后果是当安装、删除、査询软件包时,请求无法执行,如图 1 所示:

图 1 RPM数据库出现故障
这时就需要重建 RPM 数据库,执行如下 2 步 *** 作:
删除当前系统中已损坏的RPM数据库,执行如下命令:

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

重建 RPM 数据库,执行如下命令:

[root@localhost -]# rpm -rebuilddb

这一步需花费一定时间才能完成。
除了用户误 *** 作导致 RPM 数据库崩溃,有些黑客入侵系统后,为避免系统管理员通过 RPM 包校验功能检测出问题,会更改 RPM 数据库。

理论上,系统一旦被黑客“光顾”,则做的任何 *** 作都将不可信。

对于这种情况,我们可以按照以下步骤对文件进行检测:
对于要校验的文件或命令,找到它属于哪个软件包,如下命令所示:

[root@localhost ~]# rpm -qf/etc/rc.d/init.d/smb
samba-3.0.23c-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”表示文件权限及所有者、所属组。查看实际的文件,通过对比文件大小,所有人、所属组、权限、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 数据库。 总结

以上是内存溢出为你收集整理的Linux重建RPM数据库(RPM数据库损坏的解决方案)全部内容,希望文章能够帮你解决Linux重建RPM数据库(RPM数据库损坏的解决方案)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1032696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存