sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #16675
Re: Køre script med uid=0 fra Apache
On Sun, 26 Dec 1999, Carsten Svaneborg wrote:
> Ulrik Buchholtz wrote:
> > hvordan kan jeg nemmest køre et script som root fra apache.
>
> chmod ug+s script
> hvis det er eget af user/group root. Så vil apache udføre det med
> root access.
Det er ikke så enkelt -- kun hvis det er et binært program. Og det er ikke
Apache der gør noget, men kernen.
Linux understøtter ikke SUID-scripts. Dog understøtter Perl fx SUID
scripts self: hvis man sætter SUID på et .pl script udføres denne med
programmet suidperl hvis det er installeret og er sat til at være SUID
root.
SUID-perl scripts kører automatisk med "taint" som gør det lidt sværere at
skrive dumme SUID programmer (fx få input fra brugeren og bagefter udfører
uden videre noget i stil med: system("echo $navn har været her >>
logfil").
Jeg har brugt Perl SUID scripts i netop denne forbindelse -- et
webinterface til administration af en maskine, oprettelse af brugere osv.
og det virkede OK.
Hvis det er et shell/python/andet ikke-perl script det drejer sig om kan
du laver en "wrapper" der starter programmet op som SUID. Wrapperet er et
almindeligt C-program og kan altså være SUID og det eneste den gør er at
starte programmet:
#include <stdio.h>
int main(int argc, char **argv) {
return execv("/sti/til/dit/script", argv);
}
Det program kompileres så og gemmes som dit program.cgi og kaldes fra
Apache. Det sættes SUID og kalder så dit script som arver denne
SUID-lighed.
--
==============================================================================
Erwin Andreasen Herlev, Denmark <erw@xxxxxx> UNIX System Programmer
<URL:http://www.andreasen.org> <*> (not speaking for) DDE
==============================================================================
Follow ups
References