linux - 如何为 su 或 sudo 设置 LD_PRELOAD?

标签 linux centos glibc su

我正在使用 CentOS 6.5。我的 glibc 版本是 2.14,我不小心将/lib64/libc.so.6 链接到以前的 glibc(libc-2.12.so)。

然后我运行export LD_PRELOAD=/lib64/libc-2.14.so,除了susudo之外,大多数命令都可以执行。当运行 su 时,它会给出 “Segmentation fault”。当运行 sudo 时,它给出 “su:/lib64/libc.so.6: version `GLIBC_2.14' not found (required by/lib64/libcrypt.so.1)”.

如何为 susudo 设置 LD_PRELOAD,或者如何恢复 glibc?

最佳答案

按照设计,没有办法。设置 LD_PRELOAD 允许在可执行文件中执行任意代码。在运行敏感的特权 SUID 程序时允许这样做是相当不明智的。

关于linux - 如何为 su 或 sudo 设置 LD_PRELOAD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41378462/

相关文章:

c - 从第一个字符串中的第二个字符串中删除所有出现的所有字符

Linux LS 命令无法与 * 正则表达式量词一起正常工作

c# - 访问路径 '/proc/1/map_files' 被拒绝 .NET Core 2.1 Centos 7

python - Python如何知道系统是Debian还是CentOS?

c++ - 目标代码重定位和 Intel Pin 交互

linux - macOS 与 s 上的回溯信息不同Linux

c - Unix C 编程 : multiple pipes and forks

regex - 用注释替换字符串的特定出现

linux - 在没有互联网连接的情况下无法使用 yum 安装 httpd-devel rpm

c - 重新分配(): invalid next size in my code