linux-l: su

Matthias Kranz kranz at fokus.gmd.de
Fr Mär 17 12:53:53 CET 2000


On Fri, Mar 17, 2000 at 10:44:11AM +0100, Jens Dreger wrote:
> On Fri, Mar 17, 2000 at 09:18:14AM +0100, Matthias Kranz wrote:
> > Das naechste musst Du als root ausfuehren (also auf einer Console direkt als
> > root einloggen und loslegen):
> > 
> > strace -u <DEIN NUTZERNAME MIT DEM 'SU' NICHT KLAPPT> -o strace_dump.txt su
> > 
> > Das legt eine Datei strace_dump.txt an, in der man vielleicht mehr sehen kann.
> 
> Guter Plan.

Nicht wahr?

> Aber wer den output von strace versteht, wuerde mit dem
> "Problem" sicherlich auch alleine fertig, meinst Du nicht ?

Ich erwarte ja gar nicht, dass er den selbst analysiert. Ich gehe fest davon
aus, dass er ob des kryptischen Inhalts die ML erneut kontaktieren wird ;)

> Immerhin kann man daran sehen, dass der setgid-Aufruf _nicht_ von
> su kommt, sondern von der shell, die von su gestartet wird. su setzt
> vorher die uid auf 0. Man muss auch noch die child-Prozesse tracen
> (strace -f ...), wodurch das Ganze nicht unbedingt uebersichtlicher
> wird.

Richtig.

> Die Frage lautet also, wie kann es passieren, dass ein uid=0 Prozess
> nicht in der Lage ist, setgid(0) auszufuehren ? Vielleicht hat es was
> zu tun mit (man setgid):
> 
>   If the user is root or the program is setgid root, special care 
>   must  be  taken.  The  setgid  function checks  the  effective gid
>   of the caller and if it is the superuser, all process related group
>   ID's are set to gid.  After this has occurred, it is impossible for
>   the program to regain root privileges.
> 
> Wenn es wirklich wichtig ist, schau Dir doch den source von "su"
> an. Ungluecklicherweise wirst Du wahrscheinlich auch noch den source
> der libc brauchen. Ist schon eher aufwendig. Neuinstallation ist
> sicherlich einfacher. 

Mit dem letzteren Absatz meinst Du jetzt aber nicht mehr mich oder?

<FORGET IT> :)

Cheers,
Matthias
-- 
Matthias Kranz                     http://www.fokus.gmd.de/user/matthias.kranz/
                 
              Research Institute for Open Communication Systems
        GMD FOKUS, Kaiserin-Augusta-Allee 31, D-10589 Berlin, Germany



Mehr Informationen über die Mailingliste linux-l