Linux 用另一个更新的libc.so.6替换符号链接libc.so.6后如何恢复?
用另一个更新的libc.so.6替换符号链接libc.so.6后如何恢复 我已经检查了下面的链接 问题是我用另一个libc.so.6更新了文件Linux 用另一个更新的libc.so.6替换符号链接libc.so.6后如何恢复?,linux,Linux,用另一个更新的libc.so.6替换符号链接libc.so.6后如何恢复 我已经检查了下面的链接 问题是我用另一个libc.so.6更新了文件 没有knoppix还有其他方法吗?我不能做rm,cat,mv。。etc仅支持ldconfig,但我甚至无法替换该文件,因为链接就在那里。如何删除此文件?如果您在没有任何准备的情况下已经陷入此类问题,那么,如果没有外部救援引导,您就很有可能无法恢复。对于未来的实验,您可以使用以下准备之一: 在一个单独的终端中启动mc(Midnight Commande
没有knoppix还有其他方法吗?我不能做rm,cat,mv。。etc仅支持ldconfig,但我甚至无法替换该文件,因为链接就在那里。如何删除此文件?如果您在没有任何准备的情况下已经陷入此类问题,那么,如果没有外部救援引导,您就很有可能无法恢复。对于未来的实验,您可以使用以下准备之一:
- 在一个单独的终端中启动mc(Midnight Commander)或另一个具有嵌入式文件系统操作实现的复杂外壳式工具
- 创建“rescue”工具集(如/rescue下的FreeBSD中的工具集)
- 启动任何脚本语言(Python、Ruby等)的
工具;在执行危险步骤之前,可能需要调用一些导入(如Python中的sys、REPL
、os
)os.path
bash
)中,都有一些有用的内置程序,因此您可以:
,echo*
而不是echo/lib/*
ls
使其为空;对于echo-n>$file
,这将有效地将其从库中删除,因为ldconfig仅在其缓存中列出正确识别的库李>ldconfig
- 如果
是shell内置的(对于现代printf
),您可以使用它和shell重定向创建任何二进制文件;这是非常缓慢和容易打字,但仍然是一个机会bash
LD_PRELOAD=/lib/libc-2.11.3.so ls
将使用/lib/libc-2.11.3.so中找到的所有外部符号运行ls
。因此,它们已覆盖了您安装的名称。(在导出规范之前不要尝试使用env
!它会因libc损坏而失败,对于任何B组shell(如bash
)都不需要它)使用/lib的备份副本导出LD\u LIBRARY\u路径,/usr/lib允许解决大多数主库目录损坏的问题。(注意,您链接的问题中描述了此方法。您真的尝试过吗?)
我希望可以在这个列表中添加另一种黑客方法
另外,这个问题不应该转移到ServerFault吗?最后我使用了knoppix。无论如何谢谢你!