Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
PHP: system()

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Netzwerk
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
theo
Gast





BeitragVerfasst am: 07. Jul 2002 21:24   Titel: PHP: system()

ich will mit system ein paar Befehle ausführen (init x,adsl-start etc). PHP ist als mod_php4 zu meinem Apache auf Suse 7.1 installiert. Wenn ich aber die Seite mit dem Skript aufrufe, bekomme ich zwar die Seite angezeigt, aber auf dem server passiert nix. Der Befehl, den ich nutze lautet:

system("init 6");

Kann es sein, dass ich irgendwas mit den Nutzerrechen ändern muss? Wenn ja, was?

Danke im Voraus, Theo
 

Chris
Gast





BeitragVerfasst am: 08. Jul 2002 0:27   Titel: Re: PHP: system()

Hi!

den "init" darf nur der "root" machen. Also musst du Apache als "root" laufen lassen... Aber: SECURITY!!!


Gruß
Chris
 

otto
Gast





BeitragVerfasst am: 09. Jul 2002 13:50   Titel: Re: PHP: system()

kann ich dabei nicht auch mit su arbeiten?

otto
 

hanna
Gast





BeitragVerfasst am: 09. Jul 2002 17:27   Titel: Re: PHP: system()

nein, du kannst nicht mit su arbeiten.
es gibt aber noch einen anderen trick, ist wie alles mit root aber auch mit vorsicht zu geniessen:

erstelle ein extra verzeichnis. dort kopierst du das entsprechende programm (z. b. "cat", "ls" oder halt "init") hinein. den dort enthaltenen programmen verpasst du dass user-ID-bit und das grout-ID-bit:
# chmod 6777 /path/init

zudem (wenn nicht schon vorhanden) die datei dem besitzer und der gruppe "root" zuordnen:

# chown root /path/init
# chgrp root /path/init

siehe zu, dass ausser dem apache-benutzer niemand auf das entsprechende verzeichnis zugreiffen darf.

nun ein kleines php-script:

-- snip --
$command = "/path/program arguments";
exec($command, $array);

echo "<FONT FACE='COURIER NEW'><BR>
";
echo "command: $command<BR><BR>
";
echo "result: <BR><BR>
";

foreach ($array as $key=>$elem) {
echo $elem;
echo "<BR>";
}
echo "</FONT>
";
-- snap --

hoffe, dass hilft.
hanna
 

theo
Gast





BeitragVerfasst am: 13. Jul 2002 13:55   Titel: Re: PHP: system()

Hab alles gemacht. Bekomm aber immer nur angezeigt command:Der Befehl und result: Dann kommt nix mehr. Als Verzeichnis hab ich /usr/local/httpd/sbin genommen. An was kann das liegen?
 

Theo
Gast





BeitragVerfasst am: 13. Jul 2002 18:39   Titel: Re: PHP: system()

habs jetzt so geregelt (Mit Hilfe von einem Kumpel):

in die /etc/sudoers wwwrun ALL=NOPASSWD:ALL eingetragen
in der /etc/httpd/php.ini safe_mode auf off gestellt. (War der wichtigste Schritt, vorher gingen nicht mal irgendwelche echo Kommandos)
und dann die Befehle mit sudo -u root Befehl in die Skripte eingetragen.

Die Lösung mit sudo ist übrigens deshalb notwendig, weil init und adsl-stop/adsl-start als root ausgeführt werden müssen, auch wenn die Berechtigungen was anderes zulassen. Jetzt klappts aber. Danke für eure Hilfsbereitschaft

Theo
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Netzwerk Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy