一次誤刪除libc.so.6后虛驚一場

1. libc.so.6介紹

/usr/lib/libc.so.6是glibc的軟鏈接,不同的平臺可能路徑會不一樣。
使用命令查看會看到:
[root@farmer:~]$ls -l /lib/libc.so.6
lrwxrwxrwx 1 root root 11 Jan 1 22:23 /lib/libc.so.6 -> libc-2.9.so
glibc是gnu發(fā)布的libc庫,即c運(yùn)行庫。glibc是linux系統(tǒng)中最底層的api,幾乎其它任何運(yùn)行庫都會依賴于glibc,所以說絕大部分操作命令都缺少不了它。

創(chuàng)新互聯(lián)自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元藁城做網(wǎng)站,已為上家服務(wù),為藁城各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

2. 誤刪處理

如何誤刪了libc.so.6,大部分系統(tǒng)命令將無法執(zhí)行,ssh登錄系統(tǒng)也不成功,只會無休止的提示以下錯誤:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
這種情況下,大部分命令已經(jīng)不能執(zhí)行了,只能執(zhí)行例如cd,echo等小部分命令,而實(shí)用的cp,mv則不可用
經(jīng)過各種百度,得到解決方法(而此種方法的前提是ssh還沒斷開,如果ssh已斷開則無法重新連接上,得使用另外的方法用光盤重啟進(jìn)入急救模式):
在同版本系統(tǒng)上查看/lib/libc.so.6得知是屬于libc-2.9.so的軟鏈接,因此,libc-2.9.so文件肯定還是存在的,誤刪的只是軟鏈接而已,但此時想用ln命令重新建立軟鏈接是失敗的,但是可以這樣強(qiáng)制設(shè)置變量就能執(zhí)行成功!
LD_PRELOAD=/lib/libc-2.9.so ln -s /lib/libc-2.9.so /lib/libc.so.6
紅色部分為glibc臨時指定的庫,這樣正確執(zhí)行后libc.so.6就正確恢復(fù)了。

3. 后續(xù)

glibc是一個非常底層的庫,bash也依賴她,所以,如果把這個庫干掉了,基本上啥事都干不了了,但是為啥前面設(shè)置一下LD_PRELOAD變量 就可以了呢?是這樣的,LD_PRELOAD可以影響程序的運(yùn)行時的鏈接(Runtime linker), 它允許你定義在程序運(yùn)行前優(yōu)先加載的動態(tài)鏈接庫,之前把libc.so.6這個軟連接給干掉了,所以系統(tǒng)找不到這個庫了,但是通過LD_PRELOAD設(shè)置一下glibc這個庫的真實(shí)地址就可以解決這個問題了

分享文章:一次誤刪除libc.so.6后虛驚一場
網(wǎng)頁URL:http://muchs.cn/article22/jcjjcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、微信公眾號網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站