[linux-l] Programme / Dateien / Benutzerr?chte

Steffen Dettmer steffen at dett.de
Sa Jun 21 16:30:29 CEST 2003


* Thomas Knop wrote on Fri, Jun 20, 2003 at 08:06 +0200:
> * Steffen Dettmer <steffen at dett.de> [20.06.03 07:16]:
> > * Thomas Knop wrote on Tue, Jun 17, 2003 at 08:18 +0200:
> > > * Steffen Dettmer <steffen at dett.de> [15.06.03 21:07]:
> > > > Jein :-) Skripte sind ja oft Eingaben von Shells. Also muß man
> > > > die Shell seuid machen.
> > > Wird nicht viel helfen, da der '#!' wrapper bei Linux im Kernel
> > > implementiert ist, d.h. das s-Bit wird vor dem Starten der Shell
> > > schon ignoriert.
> > 
> > Perl kann das. Schätze, der Interpreter macht einfach ein stat
> > auf das File oder sowas.
> Deine Aussage verstehe ich nicht.

Sorry. Zunächst: wie es genau funktioniert, weiß ich nicht sicher.
:-)

Man hat ein suid-root Perl "suidperl" Binary. Zusätzlich hat man
auch noch ein suid-Script. suidperl erkennt das gesetzte Bit, und
dropt dann seine Root-Rechte dann nur teilweise (je nach Funktion
IIRC). Dazu guckt sich der Perl-Interpreter (Compiler) also an,
welche Rechte beim zu startenden Script gesetzt sind (bei
Binaries macht das ja der Kernel automatisch). Dazu dient ein
"stat(2)" Aufruf (der gibt die Rechte der Datei zurück). Perl
"empfindet das Verhalten nach", könnte man sagen.

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.




Mehr Informationen über die Mailingliste linux-l