我不小心删除了符号链接/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
在这之后,我可以使用ls和ln ... ,但仍然不能使用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符号链接并运行,但这并不总是有效。