目录

centos系统bin文件被篡改,导致执行命令异常

背景

在linux日积月累的使用中,系统的二进制bin文件,可能因为磁盘问题,或者人为误操作等各种问题,导致部分二进制命令执行失败。

如何验证系统bin文件是否被篡改

全局验证

[root@localhost ~]#rpm –Va

此命令执行后,会有如下类似输出

/images/centos%E7%B3%BB%E7%BB%9Fbin%E6%96%87%E4%BB%B6%E8%A2%AB%E7%AF%A1%E6%94%B9%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%BC%82%E5%B8%B8/clip_image001.png

单个文件验证

全局验证往往耗时较长,如果不需要,可以进行单个软件包内的文件进行验证。因为验证是基于软件包的,所以在验证前,可通过yum provides去查看所验证的文件属于哪个软件包

[root@localhost ~]# yum provides /usr/bin/crontab

/images/centos%E7%B3%BB%E7%BB%9Fbin%E6%96%87%E4%BB%B6%E8%A2%AB%E7%AF%A1%E6%94%B9%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%BC%82%E5%B8%B8/clip_image001-0812191.png

如上图可以看到,该命令来自于cronie-1.4.4-12.el6.x86_64这个软件包。

执行下列命令对该软件包进行验证

[root@localhost ~]# rpm -V cronie-1.4.4-12.el6.x86_64

/images/centos%E7%B3%BB%E7%BB%9Fbin%E6%96%87%E4%BB%B6%E8%A2%AB%E7%AF%A1%E6%94%B9%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%BC%82%E5%B8%B8/clip_image002.png

前面各个字母或数字的意思如下

S= 大小改变

M= 权限改变

5=MD5改变,说明文件内容被改了 : md5sum

L= 连接改变

D= 设备改变

U=用户改变

G= 组改变

T=修改时间改变

只要是执行该命令输出的文件,说明该文件和系统初始文件发生了改变,这些文件主要分为两大类,一种是配置文件,如*.repo,*.conf等等,此类文件一般在做配置时都会修改,可以不用理会,还有一类是二进制文件,如在/bin或/sbin下的各种命令,如ls,rm等等,这类文件严格来说,不应该发生任何改变,如果在验证结果中出现这类文件,就需要格外注意了!

修复

如果只是权限或者用户属组发生改变,那么只要去找其他权限正常的机器,按照正确的权限修改即可;如果验证后发现有大小或者MD5的改变,那么就需要重新安装解决了(不是所有的命令涉及的软件包都可以重新安装,有些太过于底层的命令,依赖太多,可能只能重新安装系统,具体以现实情况为准),具体参见下文。

如上面的案例,我们发现crontab命令权限,MD5等文件大小都发生了改变,这会就需要重新安装软件包解决了

/images/centos%E7%B3%BB%E7%BB%9Fbin%E6%96%87%E4%BB%B6%E8%A2%AB%E7%AF%A1%E6%94%B9%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%BC%82%E5%B8%B8/clip_image002.png

挂载上操作系统的光盘,配置好yum源后,执行下面的命令进行软件包的重新安装,安装前建议将crontab有关的配置文件进行备份,以防止覆盖丢失(虽说不太可能发生)

[root@localhost~]#yum reinstall cronie-1.4.4-12.el6.x86_64

/images/centos%E7%B3%BB%E7%BB%9Fbin%E6%96%87%E4%BB%B6%E8%A2%AB%E7%AF%A1%E6%94%B9%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%BC%82%E5%B8%B8/clip_image003.png

安装完成后再次执行验证

[root@localhost ~]# rpm -V cronie-1.4.4-12.el6.x86_64

/images/centos%E7%B3%BB%E7%BB%9Fbin%E6%96%87%E4%BB%B6%E8%A2%AB%E7%AF%A1%E6%94%B9%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%BC%82%E5%B8%B8/clip_image004.png

不再有任何输出,说明文件权限大小完全正确,修复成功。