PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mit php ein chmod auf ein verzeichnis ausführen, das einem nicht gehört



_Michael_
10.03.2006, 10:26
Hallo zusammen,

Man kann ja mit php über den Backtickoperator ein Shellkommando ausführen. Ich möchte folgendes tun:
Das php skript soll `chmod 750 $datei` machen wobei aber die datei dem user x und der gruppe y gehört und vorher die rechte 700 hatte.

Das phpskript aber wird durch den www benutzer aus der gruppe wwwrun ausgeführt. Also keine Rechte auf die Datei.

Wie kann ich nun dieses Problem lösen?
Beste Grüße,

Michael

lordlamer
10.03.2006, 10:50
php als cgi laufen lassen
oder über nen cronjob

_Michael_
10.03.2006, 10:59
Danke erstmal,

aber wie genau meinst du das? Kann dir nicht ganz folgen

lordlamer
10.03.2006, 11:51
was verstehst du nicht?

das als cronjob oder das als cgi?

mfg frank

_Michael_
10.03.2006, 12:05
1. das als cgi (liegt daran, das ich kein cgi kann)
2. das als cronjob, weil ich ja das kommando dann ausführen will, sobald aich auf der php seite etwas tut (sobald der user auf n button klickt)

schöne grüße,

Michael

lordlamer
10.03.2006, 12:38
wirst du so wohl nicht so einfach lösen können weil es dann unsicher werden würde!

empfehlen würde ich die cronjobmethode. lässt halt jede minute nen cronjob laufen.

mfg frank

_Michael_
10.03.2006, 13:06
Habs mit sudo und php hinbekommen.
Prima Sache und scheint auch zu laufen.

Danke dennoch für deine Hilfe.

Schöne Grüße,

Michael

lordlamer
10.03.2006, 13:09
und das ist auch erreichbar über ne website?
leicht unsicher oder nicht?!

mfg frank

_Michael_
10.03.2006, 14:16
meinst du?
an die php datei kommt ja eigentlich keiner dran und das recht chmod auszuführen hat ja auch nur der webserver.
ich seh jetzt nicht direkt ein sicherheitsrisiko.
hmm

Grüße,

Michael

lordlamer
10.03.2006, 14:17
jap meine ich!

es könnte ja zb möglich sein jetzt irgendwie nen anderen dateinamen unter zu mogeln. so könnte man zb /etc/passwd die rechte ändern.

mfg frank

_Michael_
10.03.2006, 14:26
hmm
denkbar wäre das schon...aber ich kann mir grad nicht vorstellen wie das ablaufen soll.
eigentlich soll ja der apache und auch php soweit sicher sein...oder versteh ich dich grad falsch?

grüße,

Michael

lordlamer
10.03.2006, 14:29
der apache und php kann zu 100% sicher sein. Das schützt dich dann aber nicht vor fehlerhaften oder nicht genügent gesicherten phpscripten in der verarbeitung.

frank

_Michael_
10.03.2006, 14:44
Das ist natürlich richtig.
meinst du denn es ist sehr riskant wenn ich es so lasse?
Es ist nämlich nicht so, dass ich jetzt auf dem Server die extrem empflindlichen Daten habe.

Schöne Grüße,

Michael

lordlamer
10.03.2006, 14:57
jap!

es ist sehr riskant!

ich würde das so nicht machen!!! schongarnicht wenn du dort sensible daten hast!

frank

_Michael_
10.03.2006, 15:22
ne, die daten sind eben nicht so sensibel. aber egal.
werd das mal mitm chef durch sprechen. Gucken was der dazu meint :)
Wieviel Arbeit wäre die cgi Variante denn? btw. ist cgi einfach zu coden? womit ist das vergleichbar?

Grüße,

Michael

lordlamer
10.03.2006, 15:24
narf!

machs per cronjob!

ich meinte du kannst das phpscript als cgi laufen lassen. das ist ne einstellungssache im apache.

frank

Wolfgang
10.03.2006, 21:30
Hallo

CGI lernen? Was ist das für eine Frage?
Du weisst was CGI ist?
Das Common Gateway Interface (http://de.wikipedia.org/wiki/CGI) kann mit allen möglichen Scriptsprachen bedient werden.

C-Script, perl php oder was du willst.
Natürlich bist du z.B. mit perl flexibler als mit php, aber das hat nix mit CGI zu tun.
Du könntest z.B. ein simples Perlscript schreiben, was mit entsprechenden Rechten läuft und nur diesen einen Ordner (als Parameter aus deiner php Datei übergeben und gründlich geprüft) bearbeitet. Das kannst du auch noch per sudo absichern.
Vorteil:
Das Script ist nicht direkt via Web aufrufbar, und akzeptiert nur zulässige Parameter.
Damit hat kein anderer User die Möglichkeit im System rumzupfuschen.

Gruß Wolfgang

sono
11.03.2006, 22:23
Hehe, Lustiges Thema.

lordlamer: pinzipiell hast du recht, Aber:

Es ist durchaus machbar Sudo und PHP zu verwenden, wenn man weiß was man macht, ohne die Sicherheit des Servers wirklich negativ zu beeinträchtigen.

Einmal kann man sudo relativ gut konfigurieren, und so einiges abfangen, und dann besteht die Möglichkeit das mit Sudo auszuführende Script als root:root mit den rechten 555 bzw 111 zu speichern.

So kann zwar jeder das script ausführen, aber man benötigt rootrechte um es zu ersetzen.
Wenn das Script dann noch sauber geschrieben ist kann man also relativ sicher mit sowas arbeiten.

Das Argument, man könne das Script irgendwie ersetzen liegt bei der Konfiguration flach, denn mit den Rechten die man dazu benötigt, könnte man die /etc/passwd oder jeder andere Datei ebenfalls manipulieren.

Man sollte allerdings sehr genau wissen was man macht und das script möglichst so statisch schreiben, dass kein schaden durch irgendeinen input enstehen kann.

Nachdem was ich bis jetzt gelesen habe, würde ich allerdings sagen, dass lordlamer 's Tipp besser für dich geeignet sind, als sudo.

Jemand der mit sudo wirklich umgehen kann und in der Lage ist sowas zu 98% sicher über die Bühne zu bringen müsste nämlich nicht fragen.

Ps, von wegen Sicherheit und Daten. Ich glaube du unterschätzt das Gebiet Serversicherheit ein wenig. Wenn dich jemand hackt, und deinen Webspace, Server oder was auch immer dazu verwendet um illegale Inhalte anzubieten , oder Traffic ohne Ende zu erzeugt, dann kommen Kosten auf dich zu, da schlackern dir Ohren.