Re: Wie geht setuid für bash script?
On Sunday 20 September 2009 15:25:38 Sven Hartge wrote:
> > (Die Begründung, die ich dafür kenne, hat wohl damit zu tun, dass
> > man davon ausgeht, dass es relativ schwer ist, ein ,,sicheres''
> > Shell-Skript zu schreiben und man sich durch diese Einschränkung
> > davor schützt)
>
> Eigentlich hat es damit zu tun, dass ein Race gibt zwischen dem Start
> der Shell (als root) und dem Start des Scriptes durch die Shell. Es
> wäre möglich, das Script in dieser Zeit durch ein anderes zu
> ersetzen.
Hm, das leuchtet mir jetzt nicht ganz ein. Wenn die File-Permissions
richtig gesetzt sind, kann auch niemand (außer root) das Skript
austauschen.
Außerdem funktioniert ein SETUID-Skript mit Perl ja auch. Ohne es jetzt
explizit nachzuprüfen, denke ICH, dass der Kern beim Ausführen eines
Skriptes (egal ob Perl, Shell, oder was auch immer, das weiß der Kern
gar nicht) bei der Shebang-Evaluierung (#! im Skriptkopf) nichts
besonders macht.
Insofern halte ich SETUID-Skripte für ein Feature des Interpreters,
nicht des Betriebsystems...
Test;
Wenn man das bash Binary (/bin/bash) mal mit dem SETUID-Bit versieht und
dann als normaler Nutzer ein Shell-Skript ausführt (#! /bin/bash -p)
sieht man, dass die EUID auf 0 steht (ist eigentlich auch logisch)
Genauso verhält es sich auch mit perl-suid, nur dass da schon per
Default das SETUID-Bit gesetzt ist.
Viele Grüße!
Marcus
Reply to: