我正在使用CentOS 6.5。我的glibc的版本是2.14,我不小心将/lib64/libc.so.6链接到之前的glibc(libc-2.12.so)。
然后我运行export LD_PRELOAD=/lib64/libc-2.14.so
,大多数命令可以执行,除了su
和sudo
。运行su
时,它会出现“Segmentation fault”。当运行sudo
时,它给出了“su:/lib64/libc.so.6:版本`GLIBC_2.14'未找到(/lib64/libcrypt.so.1所需)”。
如何为LD_PRELOAD
和su
设置sudo
,或者我可以做些什么来恢复glibc?
没有办法,按设计。设置LD_PRELOAD允许在可执行文件中执行任意代码。在运行敏感的prvileged SUID程序时允许这样做是不明智的。
我该怎么做才能恢复glibc?
这是一个系统管理员问题,更适合于serverfault,但恢复的一种方法是: