Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
AllOfMe
V2EX  ›  Linux

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

  •  
  •   AllOfMe · Jun 14, 2018 · 11689 views
    This topic created in 3067 days ago, the information mentioned may be changed or developed.

    最近在搭建一个内网应用,提示 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 数据服务器,可以进行访问,我想问下有没有什么可以解决的方法。。头疼了。。

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

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

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

    5L 发的是比较极端的解决方案(没有控制台,仅剩余 ssh 连接)
    userlol
    userlol
    Jun 14, 2018
    52
    还有一歪招:试下自己配的各种服务有没有软件漏洞,能不能借此拿到控制权限?
    AllOfMe
    AllOfMe
    OP
    Jun 14, 2018
    53
    @AntonChen 好的,实在很谢谢!
    wwhc
    wwhc
    Jun 14, 2018
    54
    给大家看看这几年 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 上
    thundernet8
    thundernet8
    Jun 14, 2018 via Android
    55
    ldconfig 命令试试
    nicevar
    nicevar
    Jun 14, 2018
    56
    用 LD_PRELOAD 能解决
    xiaket
    xiaket
    Jun 15, 2018
    57
    @wwhc 丧心病狂啊...
    abmin521
    abmin521
    Jun 15, 2018❤️1
    58
    junbaor
    junbaor
    Jun 15, 2018❤️1
    59
    楼主怎么样了,还安全吗,报个平安啊
    raptor
    raptor
    Jun 15, 2018❤️1
    60
    人生难免有今日,踩过才知道有些坑是不能踩的。还好我当年是在自己的 VPS 上踩过这个坑,还好重要的内容都有备份,重装了事。
    AllOfMe
    AllOfMe
    OP
    Jun 15, 2018
    61
    @raptor 是啊,我昨晚一直睡不好。这应该也是难得的经验,比书上的知识更深刻,更难忘
    AllOfMe
    AllOfMe
    OP
    Jun 15, 2018
    62
    @junbaor 暂时平安。早上跑去机房拿着 USB 去拷贝 lib64 的 so 文件,目前命令初步可以,SSH 也 ok,但是我还是要再试试
    AllOfMe
    AllOfMe
    OP
    Jun 15, 2018
    63
    @abmin521 谢谢
    sunnywx
    sunnywx
    Jun 15, 2018
    64
    glibc 不要搞啊,之前就是因为这个,系统都重装了,还好上面没有啥重要的东西
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1027 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 18:43 · PVG 02:43 · LAX 10:43 · JFK 13:43
    ♥ Do have faith in what you're doing.