在 libc.so.6 上执行位

在 libc.so.6 上执行位

从 ubuntu 22.04 开始,似乎不再在 /lib/x86_64-linux-gnu/libc.so.6 上设置执行位。这会抛出一些脚本和方法来找出正在使用的 glibc 版本。能否添加该位?

答案1

$ file /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6: ELF 64-bit LSB shared object, x86-64, 
version 1 (GNU/Linux), dynamically linked, 
interpreter /lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=69389d485a9793dbe873f0ea2c93e02efaa9aa3d, 
for GNU/Linux 3.2.0, stripped

找出正在使用的 glibc 版本

以下均显示版本:

ldd --version
ldd `which ls` | grep libc

但如果你真的希望它可执行:

sudo chmod 744 /lib/x86_64-linux-gnu/libc.so.6

它会显示:

GNU C Library (Ubuntu GLIBC 2.35-0ubuntu3.1) stable release version 2.35.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 11.2.0.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.

我建议搜索错误报告或提交错误报告来找出这样做的原因(我还没有找到原因,但假设它不需要可执行,因此被认为是错误的,因为有比假设/lib/x86_64-linux-gnu/libc.so.6存在更好的方法(比如ldd独立于版本))。

相关内容