Linux
在 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
在此之後我可以使用
ls
andln ...
,但仍然不能使用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
.我該如何解決?謝謝~
到目前為止,在這種情況下最好的做法是使用 livecd 啟動伺服器,掛載適用的分區,然後創建符號連結(注意符號連結在執行此操作時指向正確的位置,就好像它指向一個與執行時不同的絕對路徑,這將無濟於事)。
我想不出你可以執行不需要 libc 的程序,也想不出沒有 root 可以修改 root 環境的方法(按設計,後者是不可能的)。
此外,您應該真正取消綁定具有
sudo rm /lib64/libc.so.6
,輸入,您的密碼的宏鍵,然後輸入綁定到它。我只能想到一些更不方便的意外按鍵。但是,作為最後的嘗試,嘗試不使用
su
任何選項,這會保留您的大部分環境並將您的 UID 設置為 root。您也可以在目前工作目錄中創建符號連結並執行一些東西,儘管這並不總是有效。