
最近在搭建一个内网应用,提示 glibc 版本过低,所以我先通过 rpm 卸载一些应用。
但是后面发现 yum 命令还有其他很多命令都用不了,提示说: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
后面发现这是一个软连接,名字是 ld-2.12.so ,应该是缺失了,所以我进行了 sftp 上传。
后面发现虽然是没有这提示,但是命令改为提示 Permission Denied 了,应该是 ld-2.12.so 的 chmod 没有权限可以访问。。。尝试上传一个 sh 文件覆盖原来 755 的 sh 文件,里面包括 chmod 命令,但是执行了也是提示 Permission Denied
目前服务器上跑着 Java Tomcat(包括 jsp),还有 Oracle 数据服务器,可以进行访问,我想问下有没有什么可以解决的方法。。头疼了。。
1 yuqaf Jun 14, 2018 细软跑吧。。。线上系统敢动 glibc。。升级 glibc 的是很不安全的。。 |
2 ChristopherWu Jun 14, 2018 赶紧找大佬,你不会就不要着急自己搞了。 |
3 1iuh Jun 14, 2018 有快照就恢复快照。没有快照且没有重要资料需要保存就重装吧。 |
4 privil Jun 14, 2018 第三次看到这种操作了,知乎一次 ,v2ex 两次 |
5 privil Jun 14, 2018 |
6 zpf124 Jun 14, 2018 你上的这个 so 文件 是不是没权限啊...是不是 644 |
7 fancyhan Jun 14, 2018 via iPhone Centos 吧 |
8 Gcourage Jun 14, 2018 via iPhone 操作之前有没有备份原来的 libc ? |
9 ryd994 Jun 14, 2018 via Android 进 livecd 把数据拷出来,其他无所谓 |
10 sw0rd3n Jun 14, 2018 via iPhone Busybox 走起来 |
11 E1n rpm 卸载心太大 |
12 LukeChien Jun 14, 2018 via Android 所以这个系统还有救吗?单用户模式 root 身份进去搞? |
14 jjianwen68 Jun 14, 2018 不破不立,sudo rm -rfv / |
15 airqj Jun 14, 2018 进 livecd,把根目录覆盖 |
16 z3jjlzt Jun 14, 2018 说个我自己的经历,我也是在 vps 上升级了 glibc,然后发现 permission denied,想回退到 2.12 版本的,之后按网上改软链接的方式,失败了,之后发现通过 vps 后台也无法登陆 bash (后来发现这个时候如果没有断开 ssh,还是可以补救的,的但是我以为最坏的方式我也可以通过后台文件管理找回数据~~~),发 email 给 vps 提供商也回复说无法私自修改用户主机。最后只能重装,丢失了所有的数据。给你参考参考,哈哈哈 |
17 wr410 Jun 14, 2018 glibc 是核心中的核心,我宁愿直接装新的发行版也不敢去升级内核,自找麻烦~ |
18 mooncakejs Jun 14, 2018 已经断开 ssh 了? 那没救了,祝你好运。 |
19 AllOfMe OP @mooncakejs 我没办法了。。您能给些建议吗?我明天要去机房,再去修复一下。感激不尽! |
21 lepig Jun 14, 2018 哎呀 楼主的头像 现在 很应景啊 |
22 kimqcn Jun 14, 2018 让你不用 docker |
23 wqsfree Jun 14, 2018 你千万不要想着跑路啊,你千万不要想着坐走私船离开泰国,再转到越南老挝缅甸柬埔寨,你不要让领导见到你啊,让领导见到你我分分钟弄死你啊。(笑话) |
24 dmx Jun 14, 2018 我也遇到过这个问题,我是把某个版本的 so 换成了另一个版本,结果啥都不行了。印象中是使用命令的时候可以通过参数指定使用的 so 路径,这样给弄活的 |
25 dmx Jun 14, 2018 噢,有个环境变量 LD_LIBRARY_PATH |
26 xiaoheijw Jun 14, 2018 ld-2.12.so 软链接的是旧版本的 glibc 库?如果是的话,把软链接删了,指定新的 glibc 库,lib64 跟 lib 有备份的话,可以尝试 ldd 看下和新版本的区别. |
27 artandlol Jun 14, 2018 via iPhone |
28 artandlol Jun 14, 2018 via iPhone LD_PRELOAD=/lib64/libc-2.14.1.so; ln -s /lib64/libc-2.14.1.so /lib64/libc.so.6 cat >>/etc/sysconfig/i18n <<EOF LC_ALL=C export LC_ALL EOF . /etc/sysconfig/i18n |
34 AllOfMe OP @xiaoheijw 我是从 glibc2.12 版本升级的,卸载了之后就是没能再进行了。。我是有备份 /lib 和 /lib64 的,但是是被打包成 zip 文件,这样还有救吗?请教 |
36 BadMan Jun 14, 2018 跑路吧,机票我已经帮你订好了 |
37 xiaoheijw Jun 14, 2018 @AllOfMe 线上业务多吗?就算现在解决了,也是临时救火,glibc 的影响太大了,建议迁移业务,重装吧.给个思路,回滚到旧版本的 glibc,你先看下 lib64 下所有的软链接指向,然后把备份的库还原回去试试,当然先备份现在的库.或者有同样 linux 版本的机器,也是 glibc2.12 的话,你可以比较两者的软链接差异.还有库的差异. ld-2.12.so 是 2.12 版本,还有看看有没有 busybox 工具,可以救急用. |
38 zpf124 Jun 14, 2018 看来得跑路了, 你现在需要众筹车票了... |
39 qiyuey Jun 14, 2018 via Android 又见到了。。。看楼上的知乎吧 |
40 sevncz Jun 14, 2018 升级过一次 glibc,还好没出问题。。。后怕。。。 |
41 mooncakejs Jun 14, 2018 @AllOfMe 如果你还能进去终端,还有得救,,,不过我怕,,,已经进不去了,只能搞搞分区挂载了 |
42 fangdingjun Jun 14, 2018 如果要使用新的 libc 正确的方法是这样的, LD_LIBRARY_PATH=/path/to/new_glibc /path/to/command |
43 twl007 Jun 14, 2018 via iPhone 干啥不好要动这个…… |
44 fancyhan Jun 14, 2018 @jjianwen68 -rfv 删的满,朋克一点 sudo nohup rm -rf / & ,直接后台删除 bootloader 和 kernel |
45 cinhoo Jun 14, 2018 via iPhone |
47 AllOfMe OP @zpf124 @twl007 @fangdingjun @mooncakejs @zpf124 @xiaoheijw 谢谢各位回复。我现在手上全是汗,下次不这么乱搞了。想问下 glibc 被删除会不会对硬盘上的数据有影响呢?我最怕这个了 |
48 x86vk Jun 14, 2018 via Android @AllOfMe 应该不会有影响的,我个人笔记本上误删过 glibc,直接拿 arch linux 的 iso 启动系统,挂载硬盘后把必须的.so 拷过去,然后 Chroot 过去装回来就好了 我觉得你这个解决方式应该也差不多 |
49 AllOfMe OP @x86vk 谢谢!我刚刚在虚拟机上模拟了各种情况下 glibc 被删除的情况,从救援模式进去。现在就是怕明天机房没有 KVM,也没有 U 盘可以插进去。。。刚刚准备了键盘鼠标 VGA 线等,只能等待命运了。。 |
50 AntonChen Jun 14, 2018 Linux 上打死别动 glibc 可能会浪费你一大把时间。 |
51 AntonChen Jun 14, 2018 @AllOfMe 用 LiveCD 从别的系统拷贝一份完好的 /lib、/lib64、/usr/lib、/usr/lib64。当然有备份还原备份更好(注意检查权限),然后 chroot 进去再安装一遍系统自带的 glibc ( yum install glibc/apt install glibc )。 5L 发的是比较极端的解决方案(没有控制台,仅剩余 ssh 连接) |
52 userlol Jun 14, 2018 还有一歪招:试下自己配的各种服务有没有软件漏洞,能不能借此拿到控制权限? |
54 wwhc Jun 14, 2018 给大家看看这几年 glibc 在 Gentoo 上疯狂的升级: Sat Apr 9 03:28:49 2016 >>> sys-libs/glibc-2.22-r4 merge time: 11 minutes and 36 seconds. Sat Jan 7 03:29:09 2017 >>> sys-libs/glibc-2.23-r3 merge time: 11 minutes and 49 seconds. Sat Jun 24 03:28:29 2017 >>> sys-libs/glibc-2.23-r4 merge time: 11 minutes and 16 seconds. Sat Nov 4 03:26:04 217 >>> sys-libs/glibc-2.25-r8 merge time: 8 minutes and 49 seconds. Sat Nov 18 03:25:38 2017 >>> sys-libs/glibc-2.25-r9 merge time: 8 minutes and 23 seconds. Sat Feb 10 03:25:51 2018 >>> sys-libs/glibc-2.25-r10 merge time: 8 minutes and 37 seconds. Sat Mar 31 03:26:10 2018 >>> sys-libs/glibc-2.25-r11 merge time: 8 minutes and 55 seconds. 定制后的 Gentoo 的稳定性 /可靠性比其它发行版强的太多,现在配置服务器都是 host 为 gentoo,各种服务全部扔到 qemu/kvm 里的 ubuntu centos fedora 上 |
55 thundernet8 Jun 14, 2018 via Android ldconfig 命令试试 |
56 nicevar Jun 14, 2018 用 LD_PRELOAD 能解决 |
58 abmin521 Jun 15, 2018 |
59 junbaor Jun 15, 2018 楼主怎么样了,还安全吗,报个平安啊 |
60 raptor Jun 15, 2018 人生难免有今日,踩过才知道有些坑是不能踩的。还好我当年是在自己的 VPS 上踩过这个坑,还好重要的内容都有备份,重装了事。 |
64 sunnywx Jun 15, 2018 glibc 不要搞啊,之前就是因为这个,系统都重装了,还好上面没有啥重要的东西 |