Linux之libc.so.6软链接错误导致ls等基础命令无法使用


aihuafeng66t
克里斯蒂亚诺诺 2024-01-09 16:25:19 52585 赞同 0 反对 0
分类: 资源
Linux之libc.so.6软链接错误导致ls等基础命令无法使用

一、背景说明
  有一台服务器曾经执行了glibc版本升级,升级失败后回退到了glibc2.17版本,升级后产生的glibc2.25版本文件保留在服务器上没有删除。在yum安装了lm_sensors模块后,出现服务器ls,grep,find等全部命令无法使用的情况。其原因是安装lm_sensors的时候需要安装依赖lm_sensors-libs动态库,安装完成动态库后会更新动态库的软链接,而/usr/lib64目录下存在升级遗留的glibc2.25相关动态库文件,默认软链接到最新版本,而当前最新版本未正确安装,并不能使用。经过重建libc.so.6等文件的软链接完成了回退。此博文是在虚拟机环境下模拟当时的场景,博文实验环境如下:

操作系统:centos7.6
glibc工作版本:2.17
处理ls、grep等基础命令无法使用的情况,请注意,重要的事情说三遍:

务必保持当前ssh连接不断开,不要重启服务器!
务必保持当前ssh连接不断开,不要重启服务器!
务必保持当前ssh连接不断开,不要重启服务器!
————————————————

这三个软链接更新后,ls等基础命令不再报错。总算是松了一口气。
[root@s146 lib64]# which ls
alias ls=‘ls --color=auto’
/usr/bin/ls
[root@s146 lib64]# ls -h |grep “2.25”
ld-2.25.so
libBrokenLocale-2.25.so
libc-2.25.so
libdl-2.25.so
libm-2.25.a
libm-2.25.so

5、ssh远程连接报错
  尝试新建ssh连接,此时ssh连接失败,包括即使已经配置了免密的服务器登录尝试也是失败的。万幸的是我此时原来的连接还在,没有断开。

(base) [root@s186 tmp]# ssh 192.168.0.146
Authentication failed.
(base) [root@s186 tmp]# ssh -v 192.168.0.146
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to 192.168.0.146 [192.168.0.146] port 22.
debug1: Connection established.

No Kerberos credentials available (default cache: KEYRING:persistent:0)

debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:0)

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
Authentication failed.
————————————————


7、使用sln更新libdl.so.2软链接
  更新了libdl.so.2软链接后,ssh远程就正常了。

(base) [root@s186 tmp]# ssh 192.168.0.146
root@192.168.0.146’s password:
Last login: Wed May 25 14:46:53 2022 from 192.168.0.186

8、使用sln更新libBrokenLocale.so.1软链接
  此时虽然不知道libBrokenLocale.so.1是否与ssh等有关系,为了安全起见也一并更新回退

[root@s146 ~]# sln /usr/lib64/libBrokenLocale-2.17.so [root@s146 lib64]# ll -h |grep “2.25”
-rwxr-xr-x 1 root root 847K May 25 10:27 ld-2.25.so
-rwxr-xr-x 1 root root 20K May 25 10:27 libBrokenLocale-2.25.so
-rwxr-xr-x 1 root root 9.8M May 25 10:27 libc-2.25.so
-rwxr-xr-x 1 root root 96K May 25 10:27 libdl-2.25.so
-rw-r–r-- 1 root root 7.6M May 25 10:27 libm-2.25.a
-rwxr-xr-x 1 root root 4.1M May 25 10:27 libm-2.25.so

三、文件说明
  如下5个文件都是glibc的动态库,此处只是根据网上查找到的信息简单记录。每个动态库都有它的用途,这里没有深究。目前实验结果来看,libc.so.6、ld-linux-x86-64.so.2、libm.so.6这三个和系统基础命令息息相关。libdl.so.2库是ssh远程必不可少的库。

1、libc.so.6文件说明
  libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库。libc.so.6 属于 glibc,主要包含如下功能:
(1)string,字符串处理
(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现
(9)io
(10)linux threads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理
(14)nis
(15)stdlib,其它基本功能

2、ld-linux-x86-64.so.2文件说明
  ld-linux.so.2是linux下的动态库加载器/链接器。ld-linux.so的工作是在程序运行前把程序需要的so找到并进行连接。很多现代应用都是通过动态编译链接的,当一个 需要动态链接 的应用被操作系统加载时,系统必须要定位然后加载它所需要的所有动态库文件。在Linux环境下,这项工作是由ld-linux.so.2来负责完成的。

[root@s146 lib64]# ldd which pwd
linux-vdso.so.1 => (0x00007ffd2b145000)
libc.so.6 => /lib64/libc.so.6 (0x00007f1587749000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1587b17000)

3、libm.so.6文件说明
  libm.so是linux环境下的科学计算动态库。

4、libdl.so.2文件说明
  在linux中是支持在程序运行时才进行so库的连接的,函数包括dlopen,dlclose,dlsym,dlerror.这几个函数的实现库就是libdl.so,所以libdl.so的工作是在程序运行时找到指定的so并连接。libdl.so里面有4个函数:

dlopen//打开一个动态库
dlsym//在打开的动态库里找一个函数
dlclose//关闭动态库
dlerror//返回错误
5、libBrokenLocale.so.1
  修复例程以使具有中断的区域设置功能的应用程序运行。通过预加载覆盖应用程序默认值。(需要使用LD\U预加载。)很少使用。
————————————————


如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
克里斯蒂亚诺诺L1
粉丝 0 资源 831 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  126
统信桌面专业版【全盘安装UOS系统】介绍  121
银河麒麟桌面操作系统安装佳能打印机驱动方法  114
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!