/* /* program suid-wrapper.c /* /* Zmente paramtry funkce execle, aby volaly vas skript se /* spravnymi parametry. /* /* Kompiluje se (po pridani modulu devel): /* cc -o jak_se_ma_jmenovat.cgi suid-wrapper.c /* /* po kompilaci pridejte prikazem chmod u+s jak_se_ma_jmenovat.cgi /* setuid bit. /* */ #include #include #include #define WWW 181 int main(void) { uid_t real; uid_t effect; char input[3000]; real=getuid(); if(real!=WWW) { /* uzivatel neni www, tedy to neni spusteno jako cgi-bin skript! */ printf("You are not WWW ! \n"); return 1; } effect=geteuid(); setruid(effect); /* parametry funkce execle jsou: uplna cesta k programu i s jeho jmenem, jmeno programu, parametr c. 1, .... c.2, 3, 4... NULL, NULL */ scanf("%s", &input); execle("/home/tomp/public_html/semuc/reg.cgi","reg.cgi",input,NULL,NULL); return(0); }