Zeitauskunft (war: Re: [linux-l] Dateien mit '/' im Dateinamen)

Stefan Bund sbund at artec-berlin.com
Do Jul 31 10:08:32 CEST 2003


Jan-Benedict Glaw <jbglaw at lug-owl.de> writes:
> Ist vom Prinzip her ganz einfach (ich häng' mal 'was an, mit dem ich
> lib-Aufrufe abfange), funktioniert hier aber nicht, da LD_PRELOAD-libs
> nicht auf setuid-Programme (vmware ist sowas!!!) angewandt werden.

Superdanke... das Rezept landet gleich in meiner Tip-Bibliothek :-)

Und zum Thema setuid-Programme habe ich mir da auch schon mal was
ausgedacht (als ich checkinstall benutzt habe).

Warum fängt man nicht einfach sämtliche exec() aufrufe ab. Wenn das
zu-execende Program setuid ist, wird statt dess Programms ein
setuid-root Wrapper ausgeführt, welcher

 a) LD_LIBRARY_PRELOAD wieder setzt
 b) Anhand der Rechte des auszuführenden Programmes seine UID/GID
    umbiegt
 c) Das eigentlich auszuführende Programm startet

Sollte LD_LIBRARY_PRELOAD bei suid Programmen *nie* funktionieren,
auch wenn es schon vom korrekten Benutzer ausgeführt wird, das muss
der Wrapper halt eine Kopie des Programms unter /tmp oder so anlegen,
welche suid *nicht* gesetzt hat und dann die Version
verwenden. argv[0] muss halt weiterhin auf die Originalversion zeigen
(was ja kein Problem ist ... ist ja ein exec() argument). Das Einzige,
was den Prozess dann unterscheidet, währe eine andere I-node, aber
wenn das Programm aus dem Grunde scheitert ist dem wirklich nicht mehr
zu helfen :-)

> Für die libc-Funktionen atexit() und on_exit() sieht das z.B. so
> aus:
[...]

nochmal danke für das Beispiel

> Ich hab' mittlerweile für mehrere lib-calls solche Abfang-Routinen und
> es werden mehr. Vieles kann man auch mit ltrace machen, aber das gibt's
> nicht für alle Architekturen...

über LD_LIBRARY_PRELOAD mit eigenen Libs für debugging-Zwecke habe ich noch nie
nachgedacht -- das muss ich mir merken.

Vielen Dank,

Stefan

-- 
Stefan Bund, Dipl.Phys.                   a   r   T   e  c      _____
Entwicklung, Administration               visual solutions     / |  /|
                                                              |----/_|
sbund at artec-berlin.com                                        | /  | /
Fon: 030 / 884684-0 | Fax: 030 / 884684-15                    |/___|/

Gottfried-von-Cramm-Weg 35-37 | Berlin | 14193 | http://www.artec-berlin.com




Mehr Informationen über die Mailingliste linux-l