Назад | Перейти на главную страницу

Случайно удалена символическая ссылка libc.so.6 в CentOS 6.4. Как получить привилегию 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

После этого я могу использовать 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.

Вы также можете создать символическую ссылку в текущем рабочем каталоге и запускать что-то, хотя это не всегда работает.