我意外删除了符号链接 /lib64/libc.so.6 -> /lib64/libc-2.12.so
$ sudo rm libc.so.6
然后我无法使用任何东西,包括ls
命令。我输入的任何命令都会出现错误
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 会话处于活动状态,但无法建立新的会话。我有 sudo 权限,但没有 root 密码。
所以目前我的问题是我需要运行sudo sln -s libc-2.12.so libc.so.6
来重新创建符号链接,但没有libc.so.6
我就无法运行。sudo
libc.so.6
我该如何解决?谢谢~
答案1
到目前为止,在这种情况下最好的做法是使用 livecd 启动服务器,挂载适用的分区,并创建符号链接(执行此操作时请注意符号链接指向正确的位置,因为如果它指向与运行时不同的绝对路径,那将毫无帮助)。
我想不出一个不需要 libc 的程序,也无法想象没有 root 的情况下修改 root 环境的方法(从设计上讲后者是不可能的)。
sudo rm /lib64/libc.so.6
另外,您确实应该解除绑定了 、enter、密码和 enter 的宏键。我能想到的只有几个更不方便的意外按键。
但是,作为最后的尝试,请尝试使用su
不带任何选项,这样可以保留大部分环境并将您的 UID 设置为 root。
您还可以在当前工作目录中创建符号链接并运行程序,但这并不总是有效。