[RH342]验证已安装的软件包
- 1. 验证已安装的软件包
- 2. 包的修复
- 2.1 权限的修复
- 2.2 重安装
1. 验证已安装的软件包
RPM 软件包管理的⼀个主要优势是存储在系统的 RPM 数据库中的有⽤数据。每次安装 RPM 软件包(包括 EPEL 和第三⽅ RPM 软件包)时,RPM 数据库中都会记录软件包和事务信息。此信息包括⽂件⼤⼩、创建时间戳、内容校验和、权限以及⽤⼾或组所有权。使⽤ RPM 数据库内容验证 RPM 软件包中的现有⽂件。
验证已安装的软件包会将当前的⽂件属性与 RPM 数据库中存储的信息进⾏⽐较。rpm -V 命令验证指定的软件包,⽽ rpm -Va 则验证系统上安装的每个软件包。
rpm 命令不会⽣成任何输出,除⾮它发现当前⽂件和 RPM 数据库之间存在差异。找到差异时,rpm将⽂件名显⽰为字符串,以指⽰哪些⽂件属性不同。
[root@serverc ~]# rpm -qf /usr/sbin/useradd
shadow-utils-4.6-16.el8.x86_64
[root@serverc ~]# rpm -qV shadow-utils
S.5....T. /usr/sbin/useradd
第一列是文件属性的掩码,用来标识和数据库文件信息匹配的结果.
字母 | 文件属性 |
---|---|
S | Size 文件大小 |
M | Model 模式(权限,包括文件类型) |
5 | Md5 文件内容 |
L | Link 链接符号,指向不同的文件 |
U | User 用户权限 |
G | Group 组权限 |
T | Time 修改时间 |
c | Config 配置文件 |
d | Document 文档文件 |
l | Licenses 许可证 |
r | Readme readme说明文件 |
2. 包的修复
2.1 权限的修复
[root@serverc ~]# rpm -V tree
.....UG.. /usr/bin/tree
当某些包的权限被篡改
[root@serverc ~]# rpm --setugids tree
[root@serverc ~]# rpm -V tree
[root@serverc ~]#
2.2 重安装
当某些包被篡改后,会发现md5发生改变
[root@serverc ~]# rpm -V passwd
S.5....T. /usr/bin/passwd
使用dnf进行重安装
[root@serverc ~]# dnf reinstall -y passwd
Last metadata expiration check: 1:24:11 ago on Fri 14 Mar 2025 02:01:01 AM UTC.
Dependencies resolved.
==================================================================================================================================================================================================Package Architecture Version Repository Size
==================================================================================================================================================================================================
Reinstalling:passwd x86_64 0.80-4.el8 rhel-8-for-x86_64-baseos-rpms 115 kTransaction Summary
==================================================================================================================================================================================================Total download size: 115 k
Installed size: 432 k
Downloading Packages:
passwd-0.80-4.el8.x86_64.rpm 2.7 MB/s | 115 kB 00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 2.6 MB/s | 115 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing : 1/1 Reinstalling : passwd-0.80-4.el8.x86_64 1/2 Cleanup : passwd-0.80-4.el8.x86_64 2/2 Running scriptlet: passwd-0.80-4.el8.x86_64 2/2 Verifying : passwd-0.80-4.el8.x86_64 1/2 Verifying : passwd-0.80-4.el8.x86_64 2/2
Installed products updated.Reinstalled:passwd-0.80-4.el8.x86_64 Complete!
再次确认
[root@serverc ~]# rpm -V passwd
[root@serverc ~]#