Re: Bug#98467: ld.so not ignoring LD_PRELOAD on seduid binaries?
OK, got it.
The following appears to work:
LD_LIBRARY_PATH=usr/lib/libfakeroot:/usr/lib/64/libfakeroot
LD_PRELOAD=libfakeroot.so.0
/usr/lib/libfakeroot.so #_Fake_ fakeroot, that doesn't
# wrap anything, but with
# setuid bit set.
/usr/lib/libfakeroot/libfakeroot.so #`normal' version
/usr/lib/64/libfakeroot/ibfakeroot.so #64-bit version
muso:~/$ fakeroot
# ldd /bin/ls | grep fake
libfakeroot.so.0 => /usr/lib/libfakeroot/libfakeroot.so.0 (0x40017000)
# ldd /bin/su | grep fake
libfakeroot.so.0 => /usr/lib/libfakeroot.so.0 (0x40017000)
It's a bit ugly to have a setuid libfakeroot.so in /usr/lib, but
apparently that's what it takes. Any other directory, and ld.so
refuses to load setuid binaries (even directories in /etc/ld.so.conf,
also after running ldconfig).
Unless people object, I'll upload a fixed version somewhere next week.
Thanks,
--
joostje
Reply to: