当我登录到我的服务器(Centos5.2-Final)时遇到严重问题,它宣布:
-bash: /bin/egrep: cannot execute binary file
-bash: /bin/egrep: cannot execute binary file
-bash: /bin/egrep: cannot execute binary file
-bash: /bin/hostname: cannot execute binary file
-bash: /bin/grep: cannot execute binary file
-bash: /bin/grep: cannot execute binary file
-bash: /bin/grep: cannot execute binary file
-bash: /bin/grep: cannot execute binary file
该服务器上运行的 apache 和 mysql 工作正常,但是 /bin 文件夹中的所有执行文件都存在这个问题,其中一些无法执行(vi、uname、ps……)
有人遇到过这个问题吗?请告诉我如何解决!
答案1
您能否发布以下内容...
ls -l /bin/hostname /bin/egrep /bin/hostname
ldd /bin/hostname /bin/egrep /bin/hostname
file /bin/hostname /bin/egrep /bin/hostname
ls -ld /bin/
echo $SHELL
答案2
您的输出是什么:grep SELINUX /etc/sysconfig/selinux
有可能 SELinux 正在阻止访问。
答案3
那是一个 rootkit ... 通常有些 rootkit 不需要编译。所有文件都只是被替换了。当您使用某些 i686 Linux 时,这些 rootkit 已安装,一切运行正常,但在 x86_64 机器上,您会遇到这些错误。您可以检查 /usr/lib/libsh 。如果此文件夹存在,则您有名为 shv(4-5) 的 rootkit,并且您将找到一个名为备份。在该文件夹中,您将找到类似以下文件:egrep/hostname/uname/etc。只需复制它们并替换 /bin 文件,或者您可以像这样测试它们:./hostname。您可以使用 yum 重新安装 binutils 或获取 .rpm 文件并手动安装。如果您要手动替换,请记住进行备份。
答案4
我能想到的最坏情况是 /bin 目录中的文件已损坏。另一种情况是 ELF 文件的体系结构与您的平台体系结构不匹配;如果您拥有 x86_64(64 位)系统,但使用无法运行 x86_64 可执行文件的 i386(32 位)内核启动,则可能会发生这种情况。
- 执行“file /bin/grep”的输出是什么
- “uname -a”的输出是什么