File: README.fake

package info (click to toggle)
fakeroot 1.5.10
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,804 kB
  • ctags: 455
  • sloc: sh: 9,226; ansic: 2,554; makefile: 277
file content (24 lines) | stat: -rw-r--r-- 877 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
In /usr/lib/ there's a _SETUID_ libfakeroot.

However, it's a *fake* fakeroot -- it doesn't wrap any `interesting'
functions (check with `nm -D /usr/lib/libfakeroot.so').

It was needed, because we need the LD_LIBRARY_PATH variable set.
But, with it set, $LD_PRELOAD cannot start with a / anymore.
And, if $LD_PRELOAD doesn't start with a slash, then for
some strange reason (BUG, if you ask me), ld.so starts looking
for $LD_PRELOAD, even if the binary is has the suid bit set.

OK, that would be *REALLY* bad (anyone starting `fakeroot su' would
gain root). But, fortunately, ld.so *does* ignore LD_LIBRARY_PATH.
However, now ld.so cannot find the $LD_PRELOAD library any more,
and it refuses to load the binary.


Apparently, the *only* way to fix this, was to put a fake libfakeroot
in /usr/lib/libfakeroot.so, and set it's suid bit.

So, that's why.

Annoyed is,
joostje.