PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechte für aus PHP



PirateKing
03.11.11, 17:44
Hallo,
ich erstelle gerade eine Website auf meinem Rootserver, die Python-Scripte im Hintergrund per PHP und shell_exec() ausführt. Dabei möchte ich Dateien auf dem Server hin und her kopieren, Ordner erstellen u.s.w.

Das Pythonscript habe ich auch fertig. Wenn ich es jetzt als root in der SSH-Console über Putty ausführe funktioniert auch alles. Doch wenn ich den exakt selben Befehl über das PHP-Schript ausführe funktioniert es nicht. Ich bekomme einfach keine Rückmeldung. Am Anfang des Scripts sind nur ein paar prints die keine Rechte benötigen. Diese funktionieren. Wenn es dann an das erstellen eines Ordners geht kommt einfach nichtsmehr.

Meine Vermutung ist, dass einfach der Apache2 oder PHP nicht die nötigen Rechte hat. Kann es sein, dass der Apache seine Rechte auf das Python-Script überträgt?

Mit Sudo habe ich es auch schon versucht. Auch die Passwortabfrage bei sudo abstellen hat nicht funtkioniert, da ich mit dem Befehl "users" keine anderen Benutzer außer Root gefunden habe.

Was kann ich tun?
Wäre über Hilfe sehr Dankbar!

DrunkenFreak
03.11.11, 19:10
Die Vermutung ist richtig. Die Skripte führt der Benutzer aus, der den Apache gestartet hat. Eine Lösung ist natürlich sudo. Richtig konfiguriert, funktioniert das auch. Eine andere wäre, den Verzeichnissen die passenden Rechte geben. Das kann aber je nach Dateien auch nach hinten losgehen.

Wene
03.11.11, 20:12
ich erstelle gerade eine Website auf meinem Rootserver, die Python-Scripte im Hintergrund per PHP und shell_exec() ausführt.

Das solltest Du nicht machen!

Wenn Du schon solch potentiell brisante Aktionen auf einem Server ausführen musst, solltest Du das vorher ausgiebig an einem PC oder einer virtuellen Maschine zuhause testen.

Dass Du Dich mit der Materie nicht auskennst beweist Du ja mit Deiner Frage hier. Ist auch in Ordnung, dafür ist das Forum ja da. Aber teste solche Dinge nicht auf einem Server welcher der ganzen Feindseligkeit des Internets ausgesetzt ist. :ugly:

PirateKing
04.11.11, 03:33
Vielen Dank!

Es hat alles funktioniert nachdem ich die Rechte der entsprechenden Files und Folders auf 777 gesetzt habe. Danke! Problem gelöst!

Aller dings hätte ich da noch eine Frage:
Wenn ich diesen Command ausführe:

"screen -dmS minecraft java -Xms300M -Xmx1024M -jar gserver/minecraft/testserver/mc.jar nogui"

dann wird er immer da ausgeführt wo ich mich gerade befinde (home dir)
Ich möchte aber das er ebenfalls in "gserver/minecraft/testserver/" ausgeführt wird, wo auch die jar liegt.

Dazu müsste ich aber doch mit cd da hinwandern. Aber das kann ich ja aus einem Script heraus nicht. Oder?

marce
04.11.11, 06:51
Doch.

*10Zeichen*

Wene
04.11.11, 07:17
Es hat alles funktioniert nachdem ich die Rechte der entsprechenden Files und Folders auf 777 gesetzt habe. Danke! Problem gelöst!

Na Super!

Schon mal daran gedacht dass diese Einschränkungen einen Grund haben? So kannst Du Deinen Server ja gleich unter DOS betreiben! :mad:

V-Ger
04.11.11, 09:20
Dazu müsste ich aber doch mit cd da hinwandern. Aber das kann ich ja aus einem Script heraus nicht. Oder?

Bei solch eklatanten Wissensluecken empfehle ich dir dringend, den Root-Server zu kuendigen und erst einmal genuegend Wissen anzueignen, um einen solchen Verantwortungsvoll betreiben zu koennen.

PirateKing
04.11.11, 13:41
Das ich die Rechte entsprechend einstellen soll habe ich gerade aus diesem Forum. Zum Server: ich habe garkeinen Rootserver sondern eine 7Tage Testversion zum üben.

Darf man üben? Darf man Fragen stellen wenn man etwas nicht weiss und auch keine Antwort gefunden hat?

Von wegen Sicherheit: Der Server kann keine Mails verschicken, seine Adresse ist nur mir bekannt und er wird in 7 Tagen wieder vollständig gelöscht.

Wenn ihr meint ich darf keinem File oder Ordner 777 Rechte geben, dann sagt mir eine Alternative. Deshalb bin ich ja da. Und die Information ich solle einfach aufhören findet man oft in Foren. Sie ist aber herzlich sinnfrei und bringt niemandem was. (Außer dem Schreiber der sein persönliches "ich bin besser"-Erlebnis hat)

Ist denn niemand da der mir auf die Frage antworten möchte?

V-Ger
04.11.11, 13:51
Selbstverstaendlich darf man lernen. Dies laesst sich jedoch viel sicherer am eigenen PC daheim realisieren. Denn dieser haengt nicht unmittelbar offen im Internet. Und dass die Adresse deines Rootservers nur dir bekannt ist, ist keine Sicherheit. Es braucht nur jemand z. B. einen Portscanner ueber den IP-Bereich laufen lassen, in welchem sich dein Server auch befindet und schon koennen offene Ports und eventuelle Schwachstellen entdeckt werden.

Eine Alternative zu chmod 777 ist z. B. chown user:group. Aber auch hier kommt es auf die Verzeichnisse und Dateien an ...

PirateKing
04.11.11, 14:02
Gut!
Dann werde ich chown mal Googeln. Danke!

Aber da wäre ja noch diese "fundamentale" Frage die mir gerade Probmleme bereitet:

"screen -dmS minecraft java -Xms300M -Xmx1024M -jar gserver/minecraft/testserver/mc.jar nogui"

Wie führe ich das in "gserver/minecraft/testserver/" aus?
Wenn das so einfach ist dann veratet es mir doch :confused:

*Bitte Bitte* :D

V-Ger
04.11.11, 14:11
#!/bin/sh
cd /pfad/zu/gserver/minecraft/testserver/
screen -dmS minecraft java -Xms300M -Xmx1024M -jar mc.jar nogui

PirateKing
04.11.11, 14:21
Vielen vielen Dank!
Vorallem an Sie V-Ger!
Ihr habt mir jetzt wirklich weiter geholfen!

Jetzt sind meine Probleme die ich hatte ersteinmal gelöst.

Wene
04.11.11, 15:38
Jetzt sind meine Probleme die ich hatte ersteinmal gelöst.

Das glaubst Du!

Versteh das bitte nicht falsch. Ich möchte Dich damit nicht persönlich angreifen oder beleidigen. Aber jemand der einen Server betreibt, auf dem über Web Befehle als root ausgeführt werden können, und die erreichbaren Dateien dann alle auch noch ausführbar sind... In den vergangenen Monaten sind weiss Gott genug Fälle von gehackten Servern publiziert worden. Und nur weil Du nicht Sony oder Uhl heisst, bedeutet dies nicht dass Dein Server nicht auch im Visier von Script Kiddies ist. Und wie sich das für mich gerade anhört bist Du mit deinem Server ein extrem leichtes Opfer.

DrunkenFreak
04.11.11, 16:28
Das ich die Rechte entsprechend einstellen soll habe ich gerade aus diesem Forum.
Entsprechend heißt aber nicht, dass du das Scheunentor öffnen sollst, sondern mit den niedrigst möglichen Rechten rangehst.

PirateKing
04.11.11, 17:32
Jetzt habe ich doch wieder ein Problem... wer hätte das gedacht :D

Ich habe

"#!/bin/sh
cd /gserver/minecraft/$1
screen -dmS $1 java -Xms300M -Xmx1024M -jar mc.jar nogui"

in ein *.sh File kopiert und versuche es von dem pfad "/var/www/" aus einem Python File auszuführen. Doch dann kommt immer

"can't cd to cd /gserver/minecraft/test"

Wenn ich den Rückgabetext kopiere und das "can't" und "to" wegmache und das dann im terminal ausführe funktioniert alles. Warum kann der denn nicht dahin navigieren?

Die Sache mit der Sicherheit... Ja! Aber ich möchte das ersteinmal zum laufen kriegen bevor ich mich damit beschäftige. Ich glaube nicht, dass ich jetzt, wenn ich 2 Tage falsche Berechtigungen gesetzt habe gleich zu einem Botnetz Server werde. Damit muss ich mich auch beschäftigen. Aber erst will ich mal, dass mein zeug funtkioniert. (Interessiert mich gerade ehrlich gesagt auch mehr)

craano
04.11.11, 17:35
Schuss ins Blaue. Das vom Apache aufgerufene Skript kommt nicht aus Document Root raus?

Grüße
craano

PirateKing
04.11.11, 17:54
Ich glaube nicht. Ich habe es ausprobiert. Er gibt die gleiche Meldung wenn er nicht über das Root-Verzeichnis muss. Und auch nicht aus dem WWW Verzeichns muss.

DrunkenFreak
04.11.11, 18:11
Wenn ich den Rückgabetext kopiere und das "can't" und "to" wegmache und das dann im terminal ausführe funktioniert alles. Warum kann der denn nicht dahin navigieren?

Wahrscheinlich wieder die Rechte...



Die Sache mit der Sicherheit... Ja! Aber ich möchte das ersteinmal zum laufen kriegen bevor ich mich damit beschäftige. Ich glaube nicht, dass ich jetzt, wenn ich 2 Tage falsche Berechtigungen gesetzt habe gleich zu einem Botnetz Server werde. Damit muss ich mich auch beschäftigen. Aber erst will ich mal, dass mein zeug funtkioniert. (Interessiert mich gerade ehrlich gesagt auch mehr)
2 Tage reichen für sowas aus und du wirst es den Rest des Serverlebens nicht mitkriegen. Daher erst Sicherheit und dann alles andere!

PirateKing
04.11.11, 18:22
hier nochmal ganz genau:

in einem Order liegt ein Ordner namens "test" und eine Datei namens "start.sh"
in der "start.sh" steht nur

#!/bin/sh
cd test

wenn ich diese mit "sh start.sh" ausführe kommt "can't cd to test"

das gleiche kommt bei einer Datei mit dem Inhalt:

#!/bin/sh
cd /var/www/gserver/mc/test

"can't cd to /var/www/gserver/mc/test"

Wie kann denn das sein?

DrunkenFreak
04.11.11, 19:04
Rechte...

Bau in dem Skript eine Fehlerausgabe mit ein und guck, was sie dir sagt. Evtl auch ein ls mit einbauen etc pp.

PirateKing
04.11.11, 19:17
Bei ls gibt er unteranderem "test" aus. Mach ich dann aber "cd test" so sagt er "can't cd to test"

ich verstehe das nicht!

derRichard
04.11.11, 19:38
ich verstehe das nicht!

verzeichnis lesen und betreten sind zwei paar schuhe.
wie bereits mehrfach gesagt wurde, das liegt mit sicherheit an den rechten.
und btw. "chmod 777" ist keine lösung.

//richard

Wene
04.11.11, 20:07
Die Sache mit der Sicherheit... Ja! Aber ich möchte das ersteinmal zum laufen kriegen bevor ich mich damit beschäftige.

Die Sache mit dem Fundament, den Wänden und dem Dach... Ja! Aber ich möchte doch erst einmal die Möbel reinstellen und wohnen bevor ich mich damit beschäftige. :p

Merkst Du was? :confused:

Du stolperst ständig über Deine selbst vermurksten Sicherheitseinschränkungen. Und ohne das Konzept dahinter verstanden zu haben würdest Du vermutlich sogar "rm -rf /" ausführen wenn man Dir das sagt. :ugly:

Nicht dass wir Dir hier nicht weiterhelfen wollen, aber Du musst auch am Anfang anfangen und nicht mitten drin. Und der Anfang ist halt einfach mal ein PC oder eine virtuelle Maschine zuhause. Darauf installierst Du eine Distribution Deiner Wahl. Allein wenn man das einmal einigermassen aufmerksam selbst gemacht hat ist man schon wesentlich schlauer. Und dann hat man alle Zeit die erforderlich ist, sich die Grundlagen anzueignen.

PirateKing
05.11.11, 14:33
Okay Okay...

Ich muss mich mit diesen Rechten und allgemein mit der Sicherheitsfrage unter Linux beschäftigen bevor ich irgendetwas anderes tun kann. Denn alles baut darauf auf.

Habt ihr mir gute Quellen?
Oder soll ich mir ein Buch kaufen?

Habe mal danach gesucht....
Sind die gut?

http://www.amazon.de/Linux-Server-Intranet-Internet-J%C3%B6rg-Holzmann/dp/3446219366/ref=sr_1_6?s=books&ie=UTF8&qid=1320452577&sr=1-6

http://www.amazon.de/Shell-Skript-Programmierung-Patrick-Ditchen/dp/3826616235

Hier im Forum habe ich noch keine Buchempfehlung gefunden...

derRichard
05.11.11, 14:39
ich persönlich finde die literatur vom kofler gut:
http://kofler.info/buecher/linux2011/

hth,
//richard

PirateKing
06.11.11, 02:14
Habe mir jetzt genau das Buch gekauft (Linux 2011 von Kofler), nen Ubuntu Server als VM installiert, ihn für SSH (Putty) eingerichtet und arbeite jetzt das Buch durch. So wie ihr mir das gesagt habt ^^

Also vielen Dank an euch alle!

over and out...

V-Ger
07.11.11, 09:35
Habe mir jetzt genau das Buch gekauft (Linux 2011 von Kofler), nen Ubuntu Server als VM installiert, ihn für SSH (Putty) eingerichtet und arbeite jetzt das Buch durch. So wie ihr mir das gesagt habt ^^

Also vielen Dank an euch alle!

over and out...


Ein wirklicher Musterschueler :)

drcux
07.11.11, 10:39
over and out...

Hm, schon merkwürdig, wie der Fehler von Filmemachern sich in die Köpfe der Menschen einprägt. ;)