Linux mit PHP steuern?

fi**en32

Lieutenant
Registriert
Mai 2007
Beiträge
967
Hi leutz,

hab hier ein problem.

ich habe mir ein bash-shell-script gebastelt was ich unter linux auch problemlos starten kann, nur wenn ich das per php machen möchte gehts nicht richtig.

es handelt sich hier um ein webinterface für einen gameserver

Code:
<?php
system("/cod/Start.sh");      // /cod/Stop.sh

?>
als was nutze ich dann diese datei? root, user oder was ich denke "other"?
gibts ne möglichkeit mit php als root befehle an linux zu schicken?

komisch ist, dass wenn ich den server per ssh starte und dann die stop.sh ausführe kommt:
"No screen session found." (sollte natürlich nur kommen wenn der gameserver aus ist)
Also muss doch schon irgendwie was übertragen werden. (warscheinlich nur was falsches?)

Start und stop haben keine auswirkungen auf den gameserver, nur warum nich.

inhalt der beiden scripte:
Start.sh:
Code:
#!/bin/bash
cd /cod/
screen -A -m -d -S cod1 /cod/cod_lnxded +set fs_game main +set sv_punkbuster 1 +set sv_pure 1 +set net_port 28961 +exec dedicated.cfg +map_rotate +set fs_homepath /cod/
Stop.sh
Code:
#!/bin/sh
screen -S cod1 -X quit

Ich habe die beiden scripte die rechte 777 gegeben. muss ich den gesamten ordner rechte geben, oder die shellscripte in ein anderes verzeichnis legen? ich weiß keinen rat mehr.

Was mache ich falsch?

es gibt sicherlich schon vorgefertigte php-scripte, allerdings kosten die guten geld und ich lerne bei diesen scripten auch nichts.

oder kennt einer eventuell ne leichtere möglichkeit, die auch funzt? xD

//edit: lese gerade was von "sudo" eventuell is das das richtige?


muss euch auch beichten, dass ich noch recht neu im linuxgeschäfft bin^^
 
Zuletzt bearbeitet:
Hallo fi**en32,

wenn du sudo ausführst musst du danach nich das Passwort eingeben.
Wie das aber automatisch abläuft weiss ich nicht.

Musst eventuell die Jungs ausm Linux Forum fragen.

Grüße

tewes
 
mach mal

Code:
system("/cod/Start.sh > ausgabe.txt");

dann sollte in der ausgabe.txt stehe was er macht bzw meckert.


als was nutze ich dann diese datei? root, user oder was ich denke "other"?

mach mal:

Code:
system("touch /cod/text.file");
Dann erstell er eine leere Datei mit dem name text.file. Schau dann mal wem die gehört :)


Zum Thema root.

Du müsstest deinem Webserver bzw den Virtual-Host Eintrag dem root-user geben, aber davon kann ich nur ABRATEN - sofern das überhaupt geht.

sudo verlangt mindestens einmal nach dem Passwort, zumindest bei meinem Kubuntu :)

Gruß
nox
 
erstmal wär ganz intressant zu wissen ob du dein script, wenn du es unter linux startest (da gehts ja haste gemeint) als normaler benutzer oder als root startest...wenn du`s als root starten musst, solltest du einfach auf der konsole (als root) folgendes eingeben
Code:
chown root:root <scriptname>
chmod a+s <scriptname>
dadurch erreichst du dass das script immer mit root-rechten ausgefuehrt wird.
 
gebe zu wusste ich gar nicht :)
Heißt das wirklich auch, das man ohne root-rechte scripts als root ausführen kann?!
Ist das nicht ne ordentlich sicherheitskritische Sache?
 
ja...dass heisst es...und das mit der sicherheit ist halt wieder so n knackpunkt...aber da du die rechte ja als root setzen musst und dann halt auch wissen solltest was du tust, ist dass meiner meinung nach nicht ganz so kritisch..
 
sollte eigentlich distri-unabhaengig sein...ist ja n einfaches shell-komando um zugriffsrechte zu setzen...und dass laeuft ja bei allen gleich ab...weiss ja auch gar nicht welche distri fi**en32 benutzt..
 
naja das es eben nicht "bei allen gleich abläuft" hab ich schnell bei Solaris gemerkt :) - Die meisten Sachen sind etwas älterer Natur und somit nicht immer im gleichen Funktionsumfang vorhanden wie bei Linux Distro's.
 
aber wie gesagt...dass ist nur einfaches zugriffsrechte setzen, denk schon dass es geht...aber nochmal zu dem eigentlich problem...hab grad entdeckt, dass die von mir vorgeschlagene loesung evtl bei nem shellscript gar nicht funktioniert...einfach mal probieren...aber mit binaries gehts auf jeden fall...nur wie gesagt..man sollte schon wissen bei welchen programmen man dieses bit setzt sonst verpasst man sich selbst noch n:headshot: aber ich geh wie gesagt davon aus, dass du/ihr dass schon wissen werdet
 
Zurück
Oben