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