首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
华为云
V2EX  ›  Linux

各位救命,刚刚不小心升级 glibc 版本,现在不管使用什么命令都报 Permission Denied,只有 cd 命令可以使用

  •  
  •   AllOfMe · 64 天前 · 3801 次点击
    这是一个创建于 64 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在搭建一个内网应用,提示 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 条附言  ·  64 天前
    谢谢各位。现在连接不上服务器了,我想明天直接去机房修改了
    第 2 条附言  ·  64 天前
    是从 glibc2.12 版本升级上来,我备份了 /lib 和 /lib64,但是是打包成 zip 文件,这样还可以吗?。。
    第 3 条附言  ·  63 天前
    楼主报个平安。目前系统可以进去了,我通过 recure 模式拷贝 lib64 的 so 文件。还要再去测测,希望一切正常
    64 回复  |  直到 2018-06-15 14:24:19 +08:00
        1
    yuqaf   64 天前
    细软跑吧。。。线上系统敢动 glibc。。升级 glibc 的是很不安全的。。
        2
    ChristopherWu   64 天前
    赶紧找大佬,你不会就不要着急自己搞了。
        3
    1iuh   64 天前
    有快照就恢复快照。没有快照且没有重要资料需要保存就重装吧。
        4
    privil   64 天前
    第三次看到这种操作了,知乎一次 ,v2ex 两次
        5
    privil   64 天前   ♥ 3
        6
    zpf124   64 天前
    你上的这个 so 文件 是不是没权限啊...是不是 644
        7
    fancyhan   64 天前 via iPhone
    Centos 吧
        8
    Gcourage   64 天前 via iPhone
    操作之前有没有备份原来的 libc ?
        9
    ryd994   64 天前 via Android
    进 livecd 把数据拷出来,其他无所谓
        10
    sw0rd3n   64 天前 via iPhone
    Busybox 走起来
        11
    E1n   64 天前 via Android
    rpm 卸载心太大
        12
    LukeChien   64 天前 via Android
    所以这个系统还有救吗?单用户模式 root 身份进去搞?
        13
    AllOfMe   64 天前 via Android
    @Gcourage 有的,lib64 和 lib 都备份了
        14
    jjianwen68   64 天前
    不破不立,sudo rm -rfv /
        15
    airqj   64 天前
    进 livecd,把根目录覆盖
        16
    z3jjlzt   64 天前
    说个我自己的经历,我也是在 vps 上升级了 glibc,然后发现 permission denied,想回退到 2.12 版本的,之后按网上改软链接的方式,失败了,之后发现通过 vps 后台也无法登陆 bash (后来发现这个时候如果没有断开 ssh,还是可以补救的,的但是我以为最坏的方式我也可以通过后台文件管理找回数据~~~),发 email 给 vps 提供商也回复说无法私自修改用户主机。最后只能重装,丢失了所有的数据。给你参考参考,哈哈哈
        17
    wr410   64 天前
    glibc 是核心中的核心,我宁愿直接装新的发行版也不敢去升级内核,自找麻烦~
        18
    mooncakejs   64 天前
    已经断开 ssh 了? 那没救了,祝你好运。
        19
    AllOfMe   64 天前 via Android
    @mooncakejs 我没办法了。。您能给些建议吗?我明天要去机房,再去修复一下。感激不尽!
        20
    AllOfMe   64 天前 via Android
    @zpf124 对的,然后我拷贝了其他的 755 的文件进行更名,但是后面直接连接不上去了
        21
    lepig   64 天前   ♥ 1
    哎呀 楼主的头像 现在 很应景啊
        22
    kimqcn   64 天前
    让你不用 docker
        23
    wqsfree   64 天前   ♥ 1
    你千万不要想着跑路啊,你千万不要想着坐走私船离开泰国,再转到越南老挝缅甸柬埔寨,你不要让领导见到你啊,让领导见到你我分分钟弄死你啊。(笑话)
        24
    dmx   64 天前   ♥ 2
    我也遇到过这个问题,我是把某个版本的 so 换成了另一个版本,结果啥都不行了。印象中是使用命令的时候可以通过参数指定使用的 so 路径,这样给弄活的
        25
    dmx   64 天前   ♥ 1
    噢,有个环境变量 LD_LIBRARY_PATH
        26
    xiaoheijw   64 天前   ♥ 1
    ld-2.12.so 软链接的是旧版本的 glibc 库?如果是的话,把软链接删了,指定新的 glibc 库,lib64 跟 lib 有备份的话,可以尝试 ldd 看下和新版本的区别.
        27
    artandlol   64 天前 via iPhone   ♥ 1
    链接: https://pan.baidu.com/s/1eMmp1a5-EgwEy21e-_2avQ 密码:3l62

    用 rpm 包吧
        28
    artandlol   64 天前 via iPhone   ♥ 1
    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
        29
    AllOfMe   64 天前
    @dmx 好的,谢谢,我去试一下
        30
    AllOfMe   64 天前
    @artandlol 谢谢谢谢!
        31
    AllOfMe   64 天前
    @xiaoheijw 好的,谢谢!
        32
    xiaoheijw   64 天前   ♥ 1
    @artandlol 你怎么知道他升级的是 2.14 版本?
        33
    xiaoheijw   64 天前
    @AllOfMe 你是 2.12 升级成那个版本了?
        34
    AllOfMe   64 天前
    @xiaoheijw 我是从 glibc2.12 版本升级的,卸载了之后就是没能再进行了。。我是有备份 /lib 和 /lib64 的,但是是被打包成 zip 文件,这样还有救吗?请教
        35
    AllOfMe   64 天前
    @AllOfMe
    @xiaoheijw
    请教,感激不尽!
        36
    BadMan   64 天前
    跑路吧,机票我已经帮你订好了
        37
    xiaoheijw   64 天前
    @AllOfMe 线上业务多吗?就算现在解决了,也是临时救火,glibc 的影响太大了,建议迁移业务,重装吧.给个思路,回滚到旧版本的 glibc,你先看下 lib64 下所有的软链接指向,然后把备份的库还原回去试试,当然先备份现在的库.或者有同样 linux 版本的机器,也是 glibc2.12 的话,你可以比较两者的软链接差异.还有库的差异. ld-2.12.so 是 2.12 版本,还有看看有没有 busybox 工具,可以救急用.
        38
    zpf124   64 天前
    看来得跑路了, 你现在需要众筹车票了...
        39
    qiyuey   64 天前 via Android
    又见到了。。。看楼上的知乎吧
        40
    sevncz   64 天前
    升级过一次 glibc,还好没出问题。。。后怕。。。
        41
    mooncakejs   64 天前
    @AllOfMe 如果你还能进去终端,还有得救,,,不过我怕,,,已经进不去了,只能搞搞分区挂载了
        42
    fangdingjun   64 天前
    如果要使用新的 libc 正确的方法是这样的, LD_LIBRARY_PATH=/path/to/new_glibc /path/to/command
        43
    twl007   64 天前 via iPhone
    干啥不好要动这个……
        44
    fancyhan   64 天前
    @jjianwen68 -rfv 删的满,朋克一点 sudo nohup rm -rf / & ,直接后台删除 bootloader 和 kernel
        45
    cinhoo   64 天前 via iPhone
    是时候分享一波了🐶
        46
    soulmine   64 天前
    @fancyhan nohup 还行
        47
    AllOfMe   64 天前
    @zpf124
    @twl007
    @fangdingjun
    @mooncakejs
    @zpf124
    @xiaoheijw

    谢谢各位回复。我现在手上全是汗,下次不这么乱搞了。想问下 glibc 被删除会不会对硬盘上的数据有影响呢?我最怕这个了
        48
    x86vk   64 天前 via Android   ♥ 1
    @AllOfMe 应该不会有影响的,我个人笔记本上误删过 glibc,直接拿 arch linux 的 iso 启动系统,挂载硬盘后把必须的.so 拷过去,然后 Chroot 过去装回来就好了 我觉得你这个解决方式应该也差不多
        49
    AllOfMe   64 天前
    @x86vk 谢谢!我刚刚在虚拟机上模拟了各种情况下 glibc 被删除的情况,从救援模式进去。现在就是怕明天机房没有 KVM,也没有 U 盘可以插进去。。。刚刚准备了键盘鼠标 VGA 线等,只能等待命运了。。
        50
    AntonChen   64 天前
    Linux 上打死别动 glibc 可能会浪费你一大把时间。
        51
    AntonChen   64 天前   ♥ 1
    @AllOfMe 用 LiveCD 从别的系统拷贝一份完好的 /lib、/lib64、/usr/lib、/usr/lib64。当然有备份还原备份更好(注意检查权限),然后 chroot 进去再安装一遍系统自带的 glibc ( yum install glibc/apt install glibc )。

    5L 发的是比较极端的解决方案(没有控制台,仅剩余 ssh 连接)
        52
    userlol   64 天前
    还有一歪招:试下自己配的各种服务有没有软件漏洞,能不能借此拿到控制权限?
        53
    AllOfMe   64 天前
    @AntonChen 好的,实在很谢谢!
        54
    wwhc   64 天前
    给大家看看这几年 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 2017 >>> 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   64 天前 via Android
    ldconfig 命令试试
        56
    nicevar   64 天前
    用 LD_PRELOAD 能解决
        57
    xiaket   63 天前
    @wwhc 丧心病狂啊...
        58
    abmin521   63 天前   ♥ 1
        59
    junbaor   63 天前   ♥ 1
    楼主怎么样了,还安全吗,报个平安啊
        60
    raptor   63 天前   ♥ 1
    人生难免有今日,踩过才知道有些坑是不能踩的。还好我当年是在自己的 VPS 上踩过这个坑,还好重要的内容都有备份,重装了事。
        61
    AllOfMe   63 天前
    @raptor 是啊,我昨晚一直睡不好。这应该也是难得的经验,比书上的知识更深刻,更难忘
        62
    AllOfMe   63 天前
    @junbaor 暂时平安。早上跑去机房拿着 USB 去拷贝 lib64 的 so 文件,目前命令初步可以,SSH 也 ok,但是我还是要再试试
        63
    AllOfMe   63 天前
    @abmin521 谢谢
        64
    284716337   63 天前
    glibc 不要搞啊,之前就是因为这个,系统都重装了,还好上面没有啥重要的东西
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   1198 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 00:26 · PVG 08:26 · LAX 17:26 · JFK 20:26
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1