使用 rpm 命令(适用于基于 RPM 的系统,如 Red Hat、CentOS、Fedora):
使用 rpm -Va 命令来校验所有已安装的 RPM 软件包。
这个命令会检查文件的属性,如大小、权限、时间戳等,并与 RPM 数据库中的记录进行比较。
如果没有不一致的地方,通常不会有任何输出。如果有不一致的地方,会显示出来。
rpm -Va > rpm.log
对于.M….G..:
M:表示文件的权限或类型(Time)已经改变。
G:表示文件所属的组(Group)已经改变。
下面是 rpm -Va 输出中可能遇到的字符及其解释:
S:文件大小(Size)发生了变化。
M:文件的权限或类型(Mode)发生了变化。
5:文件的 MD5 校验和(MD5sum)发生了变化。
D:设备节点(Device)的属性发生了变化。
L:文件的符号链接(Link)指向发生了变化。
U:文件或子目录的所有者(User)发生了变化。
G:文件或子目录的组(Group)发生了变化。
T:文件的修改时间(Time)发生了变化。
对于g:
表示文件类型为ghost
这里是各种类型字符及其对应的文件类型的简要解释:
c:常规配置文件
d:目录
g:“ghost”文件,即预期存在但在安装时并不实际创建的文件
l:符号链接
r:常规文件
s:共享库(通常是 .so 文件)
对于/var/log/lastlog: 表示文件的路径
如果你怀疑某个特定的命令被修改,可以先找出该命令属于哪个软件包,然后检查该软件包的完整性。例如,要检查 ls 命令:
rpm -qf /bin/ls
如果发现命令被修改,可以尝试重新安装该软件包来恢复命令。
使用 dpkg 命令(适用于基于 Debian 的系统,如 Ubuntu、Debian):
使用 dpkg -V 命令来校验已安装的软件包。
这与 rpm -Va 类似,但适用于基于 Debian 的系统。
dpkg -V > dpkg.log