装载自以下博主:http://blog.csdn.net/dishytian/article/details/44805345
Linux
中,libc.so.6动态库的存在决定了很多命令是否能使用,如:cp、mv、ls、ln等
可幸的是cp和export可用
cd /lib64
export LD_PRELOAD=/lib64/libc-2.12.so
我自个出现这个误操作的原因是需要升级centos glibc到2.14,需要把/lib64/libc.so.6
链接到/usr/local/glibc/lib/libc-2.14.so
误将libc.so.6重命名了,当时什么命令也用不了,在网上查到这个linux LD_PRELOAD变量的作用:
在UNIX的动态链接库的世界中,LD_PRELOAD就是这样一个环境变量,它可以影响程序的运行时的链接(Runtime
linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入恶意程序,从而达到那不可告人的罪恶的目的。
那么我就只需要将LD_PRELOAD重新指定就ok了!需要将/lib64/libc.so.6重新链接到/usr/local/glibc/lib/libc-2.14.so的方法是:
ln
-s /usr/local/glibc/lib/libc-2.14.so /lib64/lib.so.6.1
cd /lib64
mv lib.so.6.1 lib.so.6