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