Marcus: CGI Skripte mit root rechten ausführen?

Beitrag lesen

Hi @all,

ich bin gerade dabei ein paar Skripte zu Enwickeln, die den Status bestimmter dienste abfragen. Jetzt habe ich das Problem, dass wenn ein Skript aufgerunfen wird mit dem wwwrun User ausgefürht wird.
Wie kann ich die Skripte mit root-Rechten laufen lassen?
Das Skript sieht wie folgt aus:

#!/usr/bin/perl  
  
  
use strict;  
  
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variablen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  
my $ServicesDirectory="/etc/init.d/rc3.d";  # Verzeichnis in dem sich die zu Startenden Dienste befinden  
  
  
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Hauptprogramm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  
print"<table border=1 align=center>";  
print"<center><h1>Auswertung Dienste</h1></center>";  
  
my @service = <$ServicesDirectory/S*>;  
foreach my $service (@service){  
        $service=~s/$ServicesDirectory\///;  
        next if "$service" =~ "S[0-9]*bigbrother"   ||  
        "$service" =~ "S[0-9]*hwscan"    ||  
        "$service" =~ "S[0-9]*learnvipa"   ||  
        "$service" =~ "S[0-9]*fbset"    ||  
        "$service" =~ "S[0-9]*rpmconfigcheck"  ||  
        "$service" =~ "S[0-9]*smbfs"    ||  
        "$service" =~ "S[0-9]*nfs"     ||  
        "$service" =~ "S[0-9]*nfsboot"    ||  
        "$service" =~ "S[0-9]*splash_early"  ||  
        "$service" =~ "S[0-9]*running-kernel"  ||  
        "$service" =~ "S[0-9]*kbd"    ||  
        "$service" =~ "S[0-9]*splash"    ||  
        "$service" =~ "S[0-9]*ITCAM"    ||  
        "$service" =~ "S[0-9]*rebootmail"  ||  
        "$service" =~ "S[0-9]*dsmcad"   ||  
        "$service" =~ "S[0-9]*custstart";  
  
  
        $service=~s/S[0-9]*/rc/;  # Sxx nach rc wandeln (z.B. S016apache --> rcapache)  
  
        my $ServiceStatus=`$service status >/dev/null && echo OK || echo FEHLER`;  
  
        #print "$service ==> $ServiceStatus\n";  
  
        #print "<br>";  
  
  
        if ($ServiceStatus eq "OK"){  
                $service=~s/rc//;  
                print "<tr>  
                <td>$service</td>  
                <td bgcolor=#00FF00>ok</td>  
  
                </tr>";  
        }  
        elsif($ServiceStatus eq "FEHLER"){  
                $service=~s/rc//;  
                print "<tr>  
                <td>$service</td>  
                <td bgcolor=#ff0000>FEHLER</td>  
  
                </tr>";  
  
        }  
}  
print "</table>";