在CentOS 6.4中意外删除了symlink libc.so.6。 如何获得sudo特权重新创build它?

我不小心删除了符号链接/lib64/libc.so.6 – > /lib64/libc-2.12.so

$ sudo rm libc.so.6 

那么我不能使用任何东西,包括ls命令。 这个错误出现在我input的任何命令上

 ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory 

我试过了

 $ export LD_PRELOAD=/lib64/libc-2.12.so 

在这之后,我可以使用lsln ... ,但仍然不能使用sudo ln ...sudo -E ln ...sudo su甚至su 。 我总是得到这个错误

 sudo: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory 

要么

 su: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory 

看来LD_PRELOAD只适用于我帐户的当前shell会话,但不适用于像root或新会话这样的新帐户。

这是一个远程服务器,所以我不能使用Live CD。 我现在有一个ssh bash会话,但不能build立新的会话。 我有sudo特权,但没有root密码。

所以目前我的问题是我需要运行sudo sln -s libc-2.12.so libc.so.6来重新创build符号链接libc.so.6 ,但是我不能在没有libc.so.6情况下运行sudo

我该如何解决? 谢谢〜

在这种情况下,最好的做法是使用livecd引导服务器,安装适用的分区,然后创build符号链接(注意符号链接指向正确的位置,就像它指向一个不同于你跑步时的绝对path,这不会有帮助)。

我想不出一个可以运行的程序,它不需要libc,也没有办法在没有root的情况下修改root的环境(devise后者是不可能的)。

另外,你应该真正解除绑定了sudo rm /lib64/libc.so.6的macros键,input你的密码,然后input绑定到它。 我只能想到更多不方便的意外按键。

然而,作为最后一个尝试,尝试使用su没有选项,这保留了你的大部分环境,并将你的UID设置为root。

您也可以在当前工作目录中创build符号链接并运行,但这并不总是有效。