在 CentOS 6.4 中意外删除了符号链接 libc.so.6。如何获取 sudo 权限来重新创建它?

在 CentOS 6.4 中意外删除了符号链接 libc.so.6。如何获取 sudo 权限来重新创建它?

我意外删除了符号链接 /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

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

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我就无法运行。sudolibc.so.6

我该如何解决?谢谢~

答案1

到目前为止,在这种情况下最好的做法是使用 livecd 启动服务器,挂载适用的分区,并创建符号链接(执行此操作时请注意符号链接指向正确的位置,因为如果它指向与运行时不同的绝对路径,那将毫无帮助)。

我想不出一个不需要 libc 的程序,也无法想象没有 root 的情况下修改 root 环境的方法(从设计上讲后者是不可能的)。

sudo rm /lib64/libc.so.6另外,您确实应该解除绑定了 、enter、密码和 enter 的宏键。我能想到的只有几个更不方便的意外按键。

但是,作为最后的尝试,请尝试使用su不带任何选项,这样可以保留大部分环境并将您的 UID 设置为 root。

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

相关内容