Я случайно удалил символьную ссылку /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
работает только для текущего сеанса оболочки моей учетной записи, но не для новой учетной записи, например root
или новый сеанс.
Это удаленный сервер, поэтому я не могу использовать live CD. Теперь у меня есть сеанс ssh bash, но я не могу установить новые. У меня есть привилегия sudo, но нет пароля root.
Итак, в настоящее время моя проблема в том, что мне нужно запустить sudo sln -s libc-2.12.so libc.so.6
чтобы воссоздать символическую ссылку libc.so.6
, но я не могу бежать sudo
без libc.so.6
.
Как я могу это исправить? Спасибо ~
Лучшее, что можно сделать в этом случае, - это загрузить сервер с помощью livecd, смонтировать соответствующие разделы и создать символическую ссылку (при этом будьте осторожны, чтобы символическая ссылка указывала точно в нужное место, как если бы она указывала на другой абсолютный путь, чем когда вы работаете, это не поможет).
Я не могу придумать программу, которую вы можете запустить, которая не требует libc, или способ изменить среду root без root (последнее невозможно по замыслу).
Кроме того, вам действительно следует отменить привязку макроса, у которого есть sudo rm /lib64/libc.so.6
, введите свой пароль и введите привязанный к нему. Я могу вспомнить еще несколько неудобных случайных нажатий клавиш.
Однако в качестве последней попытки попробуйте использовать su
без параметров, что сохраняет большую часть вашей среды и устанавливает для вашего UID значение root.
Вы также можете создать символическую ссылку в текущем рабочем каталоге и запускать что-то, хотя это не всегда работает.