我正在使用 CentOS 6.5。我的 glibc 版本是 2.14,我不小心将/lib64/libc.so.6 链接到以前的 glibc(libc-2.12.so)。
然后我运行export LD_PRELOAD=/lib64/libc-2.14.so
,除了su
和sudo
之外,大多数命令都可以执行。当运行 su
时,它会给出 “Segmentation fault”。当运行 sudo
时,它给出 “su:/lib64/libc.so.6: version `GLIBC_2.14' not found (required by/lib64/libcrypt.so.1)”.
如何为 su
和 sudo
设置 LD_PRELOAD
,或者如何恢复 glibc?
最佳答案
按照设计,没有办法。设置 LD_PRELOAD 允许在可执行文件中执行任意代码。在运行敏感的特权 SUID 程序时允许这样做是相当不明智的。
关于linux - 如何为 su 或 sudo 设置 LD_PRELOAD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41378462/