Unix-Server Apache PHP Rechte für Scripts

C

christoph_999

Grünschnabel
Hi Leute

Es geht um einen Mietserver
Folgendes Problem stellt sich mir:
Ein PHP-Script soll auf der Domain ausgeführt werden, das eine Datei ändert.
Soll heissen, das Script xyz.php öffnet eine Datei (die auch auf derselben Domain, demselben Ordner liegt) verändert diese Datei und schliesst sie dann wieder. Das Script soll bei einer grossen Anzahl von Dateien durchlaufen und diese modifizieren.
Es liefert aber ständig Fehlermeldungen, dass es keine Schreibrechte hätte.

Ich habe folgendes nachgesehen: bei chmod 644 läuft es nicht, aber bei chmod 446 läufts sehr wohl.

Ich bin ein Noob,was den Rootserver betrifft und auch Noob generell was Unix betrifft, deswegen habe ich in genau 2 Dateien nachgesehen, ob sich was machen lässt:
httpd.conf und php.ini
In beiden habe ich aber nichts gefunden, das mein Problem beheben würde.
Ich bin mir aber ziemlich sicher, dass es irgendwo in diesen 2 Dateien stehen sollte, oder nicht? Ist sehr gut möglich, dass ich dort auch nichts gesehen habe, weil ich nicht weiss, wonach ich genau suchen soll.

chmod 446 sagt mir eindeutig, dass dieses PHP-Script scheinbar als "öffentlich" läuft und nciht als "User", aber mehr wüsste ich schon auch nciht.
Generell sollen dort mehrere Testdomains laufen, d.h. eine globale Lösung, die den ganzen Server betrifft und nciht nur das eine Script, wäre hilfreich. (eine Lösung, die nur für DIESES Script gilt und nur für DIESEN Ordner, wäre zwar nur etwas zeitweiliges, weil ich ja nächstes Mal wieder vor dem selben Problem stehe, wäre aber für jetzt auch durchaus annehmbar)

Ich würde mich nicht an Euch wenden, wenns nciht dringend wäre, sonst macht das immer wer anderer.

Danke schonmal im Voraus für Eure Antworten
Sollte ich hier falsch sein, so sagt es mir bitte.

bis dann
Christoph
 
Dein PHP-Script wird vom Webserver ausgeführt. Das bedeutet, das PHP-Script hat die selben Rechte, wie der User, mit welchem der Web-Server läuft.

Ich geh jetzt mal von Debian aus und dort läuft der Web-Server standardmäßig als User www-data mit der Group www-data. Nachdem, was ich aus deinem Posting entnehmen kann, würde ich stark darauf tippen (und auch hier gehe ich wieder von Debian aus), daß die zu bearbeitenden Files weder dem User www-data, noch der Group www-data gehören. Das hat zur Folge, daß der Web-Server, respektive das PHP-Script keine Schreibrechte bei den Files hat.

Hier mal schnell ein kurzer Abriß zu den oktalen Perm-Werten.
1 -> ausführen
2 -> schreiben
4 -> lesen

Die anderen Kombinationen setzen sich durch Addition dieser drei Werte zusammen. Hier ein kleines Beispiel:
oktaler Wert: 444 -> lesen(owner) lesen(group) lesen(others)

oktaler Wert 644 -> lesen+schreiben(owner[2+4]) lesen(group) lesen(others)

Ich hoffe, das hilft ein wenig weiter.
 
Zuletzt bearbeitet:
hat leider noch nicht weitergeholfen

Dein PHP-Script wird vom Webserver ausgeführt. Das bedeutet, das PHP-Script hat die selben Rechte, wie der User, mit welchem der Web-Server läuft.

Ich geh jetzt mal von Debian aus und dort läuft der Web-Server standardmäßig als User www-data mit der Group www-data. Nachdem, was ich aus deinem Posting entnehmen kann, würde ich stark darauf tippen (und auch hier gehe ich wieder von Debian aus), daß die zu bearbeitenden Files weder dem User www-data, noch der Group www-data gehören. Das hat zur Folge, daß der Web-Server, respektive das PHP-Script keine Schreibrechte bei den Files hat.

Hier mal schnell ein kurzer Abriß zu den oktalen Perm-Werten.


Die anderen Kombinationen setzen sich durch Addition dieser drei Werte zusammen. Hier ein kleines Beispiel:


Ich hoffe, das hilft ein wenig weiter.

Wow, danke für die schnelle Antwort, ich bin begeistert ;-)
Nun ja, es hat insofern nicht weitergeholfen, als dass ich das was Du geschrieben hast, schon weiss.

Vielleicht sollte ich die Frage etwas konkretisieren:

Die Frage ist: wie stelle ich es um, dass ein "berechtigter" User, wie der Webserver (www-data ist leider nicht auf meinem System vorhanden, aber dafür eine ganze Latte anderer "User" wie httpd, daemon, apache, mysql, admin, rpm, named, ntp, usw...) von Anfang an als Besitzer der hochgeladenen Dateien drin ist?

Oder vielleicht anders rum: wie bekomme ich meinen eigenen angelegten User "chrisadm" in eine Gruppe rein, die das darf?

Ich bin mir sicher, wenn ich dem User "chrisadm" diese Gruppe zuweisen könnte, würde das Problem dann einfach, wie Du auch schon gesagt hast, aufhören.

Ich habe noch zwischenzeitlich folgendes herausgefunden mit einer mc-Konsole über Putty: der Besitzer all dieser Dateien ist tatsächlich "chrisadm" und die Gruppe ist immer wechselnd, je nachdem, in welchem Ordner sich die Datei befindet, ist die Gruppe "site13" oder "site12" usw.

Vielleicht denke ich auch total verquer und es gibt eine Einstellung in der php.ini, die dann besagt "egal welcher User es ist, Hauptsache er ist am System angelegt, hat Schreibrechte für eine Datei" oder sowas ähnliches.

Kannst Du mir ncoh ein Stück weiterhelfen
Ich danke Dir jedenfalls für die äusserst rasche Antwort, finde ich echt toll, dass mir hier so schnell geholfen wird ;-)
Danke
 
und sorry für den Doppelpost, ich bin (wie man an der Anzahl meiner Posts ersehen kann) noch neu und hab dieses Teil des Forums nicht gleich entdeckt.
War wirklich keine Absicht
 
Bevor ich hier wieder anfange jemandem zu erzaehlen, dass es eine verdammt schlechte Idee ist an einem 100MBitler rumzuschrauben, wenn man keine Ahnung hat, weil man Gefahr laeuft dadurch Sicherheitsluecken aufzumachen, die gern missbraucht werden, hier erstmal zu deinem Problem:
Folgende Manpages solltest du dringend lesen:
man chown
man chgrp
man chmod
man usermod
man groupadd
man useradd
man groupmod
Danach duerftest du erstmal die Grundlagen der Linux-Rechteverwaltung ueber die Konsole gelernt haben und dein Problem wirst du dann mit etwas logischem Denken ganz allein loesen koennen. :) Evtl. musst du noch die Doku deines FTP-Servers ein wenig studieren und um die Doku von Apache kommst du frueher oder spaeter auch nicht herum, also lies sie lieber auch gleich: http://httpd.apache.org/docs/2.2/

Und wenn dich interessiert, warum ich dir hier keine Schritt-fuer-Schritt-Anleitung liefere um dein Problem zu loesen, kannst du ja mal den ersten Absatz von folgendem Post lesen: http://www.unixboard.de/vb3/showpost.php?p=168236&postcount=2
Ich hab mir naemlich vorgenommen, dass ich Noobs bei Rootservern in Zukunft nicht mehr helfe. Reitet euch lieber allein in die Sch..., wenn ihr denkt, dass ihr mit eurem nicht vorhandenen Wissen die Arbeiten eines Admins machen koennt.
 
Zuletzt bearbeitet:
Bevor ich hier wieder anfange jemandem zu erzaehlen, dass es eine verdammt schlechte Idee ist an einem 100MBitler rumzuschrauben, wenn man keine Ahnung hat, ****
Reitet euch lieber allein in die Sch..., wenn ihr denkt, dass ihr mit eurem nicht vorhandenen Wissen die Arbeiten eines Admins machen koennt.
Hallo Theton

Deinen "Beitrag" finde ich absolut gerechtfertigt. :dafuer:
Ich "arbeite" jetzt seit knapp 1,5 Jahren an einem "Schulserver".
Aber ein ROOT-SERVER, ... das ist mir zu heiß.
Ich glaube das jeder, der einem noob da hilft,
sich irgendwie mit verantwortlich machen kann
wenn´s brenzlig wird. Wie auch schon mehrmals
gepostet wurde, sollte mann lieber erst mal sein eigenes "Netz"
administrieren können und dann ....

Ich glaube, man sollte solche Fragen auch nicht im UB diskutieren.
Jede Hilfe, jedes Script kann alles nur verschlimmern.
Deshalb bin ich für einen Ausschluß von "ROOT-Fragen" aus diesem Board hier.

Gruß Lumpi
 
Hallo Theton

Deinen "Beitrag" finde ich absolut gerechtfertigt. :dafuer:
Ich "arbeite" jetzt seit knapp 1,5 Jahren an einem "Schulserver".
Aber ein ROOT-SERVER, ... das ist mir zu heiß.
Ich glaube das jeder, der einem noob da hilft,
sich irgendwie mit verantwortlich machen kann
wenn´s brenzlig wird. Wie auch schon mehrmals
gepostet wurde, sollte mann lieber erst mal sein eigenes "Netz"
administrieren können und dann ....

Ich glaube, man sollte solche Fragen auch nicht im UB diskutieren.
Jede Hilfe, jedes Script kann alles nur verschlimmern.
Deshalb bin ich für einen Ausschluß von "ROOT-Fragen" aus diesem Board hier.

Gruß Lumpi



Leute, ich hab meinen eigenen Admin, der von Linux und Unix auch Ahnung hat. Nur ist der derzeit einfach nicht verfügbar. Er hat mir alles so eingerichtet, dass es läuft, aber halt nur "zur Hälfte".
Ich möchte den Server auch gar nciht administrieren können, deswegen will ich Unix auch gar nciht lernen. Ich bin ein Noob und werde auch immer einer bleiben. Ich bin Programmierer und kein Unixler ;-)

Deswegen hab ich mich ja auch an Euch gewandt, die Ihr etwas davon versteht.

gibt es da keine Lösung dafür?
 
Ich möchte den Server auch gar nciht administrieren können, deswegen will ich Unix auch gar nciht lernen. Ich bin ein Noob und werde auch immer einer bleiben. Ich bin Programmierer und kein Unixler ;-)
Hallo

Diese Bemerkungen sind ein Widerspruch zu deinem "wollen".
Wenn du dich mit der Materie Server nicht vertraut machen willst
und auch kein "*nix" lernen willst...
Was willst du von uns?
Sollen wir die Administration übernehmen oder was?

Sorry, da hoffst du hier umsonst.
Ich denke mal das es für einige hier kein Problem wäre,
dir ein script oder Ratschläge zu geben.
Nur bist du dann nicht in der Lage, diese auf Richtigkeit zu prüfen.
Und unter Umständen hat dann deinen Job ganz schnell ein Anderer
weil du die Kontrolle über das System verloren hast.

Ich würde an deiner Stelle am Server keinen "Finger krumm machen"
und auf deinen Admin warten. Alles andere gleicht einem Selbstmord.

Gruß Lumpi
 
Hallo

Diese Bemerkungen sind ein Widerspruch zu deinem "wollen".
Wenn du dich mit der Materie Server nicht vertraut machen willst
und auch kein "*nix" lernen willst...
Was willst du von uns?
Sollen wir die Administration übernehmen oder was?

Sorry, da hoffst du hier umsonst.
Ich denke mal das es für einige hier kein Problem wäre,
dir ein script oder Ratschläge zu geben.
Nur bist du dann nicht in der Lage, diese auf Richtigkeit zu prüfen.
Und unter Umständen hat dann deinen Job ganz schnell ein Anderer
weil du die Kontrolle über das System verloren hast.

Ich würde an deiner Stelle am Server keinen "Finger krumm machen"
und auf deinen Admin warten. Alles andere gleicht einem Selbstmord.

Gruß Lumpi



Danke, genau das sage ich meinen Kunden auch immer, dass sie auf eigene Gefahr handeln, wenn sie an ihren Shops herumwerken und ich nicht dafür verantwortlich sein kann.

Ich weiss auch zu schätzen, dass Du es mir genauso weitergibst.
Allerdings möchtest Du für mich Verantwortung übernehmen, das brauchst Du aber nicht.
Ich bin mir der Gefahr absolut bewusst, nur kann ich jetzt nicht darauf warten, bis mein Admin tätig wird, weil das Geschäft einfach vorgeht.
Die Gefahr, die von einem Test-System ausgeht ist ja ganz klar: sogar wenn jetzt ein böser Eindringling kommt, kann nur eines passieren: er übernimmt ein paar Webseiten, macht sich meinen Server zu eigen, ändert das Root-Passwort, löscht einige der Testseiten.
Und? Es ist und bleibt nach wie vor ein Testsystem.
Nunja, wenn es ihm gefällt, darf er sogar auf meinem Server wohnen --> bis zu dem Zeitpunkt, wo er dann produktiv wird, dann muss er raus und dafür sorgt dann auch der Admin, der mir bereits auch schon Steine in den Weg gelegt hat, wie ein doppeltes Anmeldesystem (man kann sich nicht direkt als root anmelden, sonder erst mittels su zum root wechseln) usw.

Bitte hilf mir einfach, oder möchtest Du es hier zu einer Sicherheitsphilosophie ausbreiten, dann sind wir aber auch eindeutig im falschen Thread.

Mein Admin wird sowieso schon die Hände über dem Kopf zusammenschlagen, wenn er wiederkommt und ich ihm erzähle, dass ich an meinem eigenen Server selber herumgedoktort habe ;-)
Ich bin aber gross genug und werde nicht sagen, dass Du dafür verantwortlich bist :-))

Von Techniker zu Techniker: Haben wir einen Deal?
 
Ach ja, und was den Beitrag von Theton betrifft: ich habe ihn gelesen und möchte Euch auch gerne mitteilen, warum ich einen Rootserver habe:

Es ist ganz einfach, ein Server ist ein Diener, er soll mir dienen, nicht mehr und nicht weniger. Das ist eigentlich der ganze Grund.

Und da ich Funktionen wie mod_rewrite usw. verwenden muss, die aber nur ein Apache beherrscht, kann ich mir keinen IIS aufsetzen, obwohl ich selber früher win 2003 Win2k und WinNT Server und Farmen administriert habe und dort sicherlich keine solchen Probleme hätte, die ich auf einem Board kundgeben müsste.

Und was Eindringlinge angeht, so hatten wir schon einen - in der Standardkonfiguration, deswegen folgten jetzt auch Veränderungen und das System wurde dicht gemacht.
 
@christoph_999: Tja, irgendwie scheinst Du ja eine recht sonnige Einstellung zum Umgang mit Servern zu haben - der Gefahren bist Du Dir offenbar nicht im Mindesten bewusst! Grab' mal das board hier nach threads zum Thema durch, dann erkennst Du sicherlich, dass ein Server nichts ist, was man sich von einem Admin "so halb" einrichten lässt und dann mit null Ahnung ins WWW beamt.

Ich denke, thetons Ansatz ist über kurz oder lang der einzig mögliche: wenn man erkennt, dass der Fragesteller vielleicht einen Ratschlag umsetzen kann, ansonsten aber Wissenslücken in den elementaren Basics hat, dann kann man nur noch zum Abschalten raten. Hinweise zu manpages und Tipps zur Handhabe von Offline-Servern sind natürlich völlig in Ordnung, denn irgendwo muss man ja anfangen - nur nicht gerade gleich in einem offenen Netz (obwohl: Du sagst selbst, dass Du eigentlich keinen server administrieren können willst, weshalb mich wundert, dass Du mit sowas überhaupt betraut wirst).
 
Nunja, wenn es ihm gefällt, darf er sogar auf meinem Server wohnen --> bis zu dem Zeitpunkt, wo er dann produktiv wird, dann muss er raus und dafür sorgt dann auch der Admin, der mir bereits auch schon Steine in den Weg gelegt hat, wie ein doppeltes Anmeldesystem (man kann sich nicht direkt als root anmelden, sonder erst mittels su zum root wechseln) usw.

Schon das zeigt dein unverantwortliches Handeln. In dieser Zeit verschickt derjenige evtl. gigabyteweise Spam oder Viren oder verteilt fleissig Warez ueber deinen Server. Offenbar hast du meinen Beitrag also nicht richtig gelesen. Gehen wir davon aus, dass man auf einem Rootserver etwa 10 Megabyte pro Sekunde durch die Leitung jagen kann, gibst du damit dem "Bewohner" deines Servers die Moeglichkeit knapp 600MB Spam pro Minute zu verbreiten. Wenn dieser Spam z.B. ein Firmennetzwerk betrifft, kannst du davon ausgehen, dass du ziemlich schnell von denen eine Anzeige bekommst, denn Traffic kostet Geld.

Die Loesung deines Problems ist ganz einfach: Sorge dafuer, dass alle User, die Dateien per FTP hochladen, in der Gruppe sind, unter der der Webserver laeuft und dass der FTP-Server fuer alle hochgeladenen Dateien eine Umask setzt, die der Gruppe Schreibrechte einraeumt. Wenn du nicht weisst wie das geht... sorry ... RTFM :rtfm:. (welche du lesen musst, habe ich dir ja bereits gesagt).
 
*** Nunja, wenn es ihm gefällt, darf er sogar auf meinem Server wohnen --> bis zu dem Zeitpunkt, wo er dann produktiv wird, dann muss er raus und dafür sorgt dann auch der Admin, ***
Der halt "nur im Moment" nicht da ist.
Diese Zeit ist ausreichend, um einen "badcode" einzubasteln.
Bitte hilf mir einfach, oder möchtest Du es hier zu einer Sicherheitsphilosophie ausbreiten, dann sind wir aber auch eindeutig im falschen Thread.
Nicht falscher Thread, sondern die Antwort, die du immer bekommen wirst.

Dir wird aber bestimmt geholfen, wenn du z.B. fragst
"Wie konfigurieren ich den Mailserver *XY*?" Oder andere "Kleinigkeiten".

Alles was die Sicherheit betrifft, wird einfach nur nach /dev/null umgeleitet
und, wie bisher in allen Thread´s auch, nicht anders kommentiert.
Mein Admin wird sowieso schon die Hände über dem Kopf zusammenschlagen, wenn er wiederkommt und ich ihm erzähle, dass ich an meinem eigenen Server selber herumgedoktort habe ;-)
... und ganz schnell wieder gehen.
Von Techniker zu Techniker: Haben wir einen Deal?
Kurz gesagt: NEIN !
DENN: Dafür gibt es die gut bezahlte Berufsgruppe ***ADMIN.

Abschließend kann ich dir nur raten:
  • Lerne mit *nixuiden Systeme umzugehen.
  • Auch wenn die Syntax eventuell anders ist, als Programmierer verstehst
    du leicht jeden Quellcode des Systems. Zumindest solltest du das.
  • Befolge den Rat von Theton.
  • oder lass es sein
Ich werde an diesem Thread nicht mehr teilnehmen, da ich meinen
Standpunkt lang und breit genug erklärt habe.

Gruß Lumpi

PS: Ich wünsche weder von dir noch einem Anderen eine PM oder Mail zu diesem Thema, sonst > /dev/null

[EDIT]
Habe ich wieder mal lange gebraucht, die richtigen Worte zu finden!
 
@ Lumpi: Hauptsache, es sind die richtigen Worte!

@ cristoph_999:

Nunja, wenn es ihm gefällt, darf er sogar auf meinem Server wohnen (...)

Ich hätte da jemanden für Dich: schau mal in diesen thread, da steht sogar 'ne email-Adresse, bei der Du Dich mal melden kannst.

Have lots of fun!
 
Zuletzt bearbeitet:
@ Lumpi: Hauptsache, es sind die richtigen Worte!
***
Ich hätte da jemanden für Dich: schau mal in diesen thread, da steht sogar 'ne email-Adresse, bei der Du Dich mal melden kannst.

Have lots of fun!
@gropiuskalle
Letzteres war aber nicht für mich bestimmt, oder doch? :D
Diesen thread habe ich eben jetzt auch besucht ;)

Gruß Lumpi
 
Natürlich nicht! Das ist mein ganz persönlicher Willkommensgruß an christoph... ich schieb' da gleich noch ein @ nach, zum besseren Verständnis.
 
Naja, lasst das mal hier nicht zum sinnlosen Geflame ausarten. Ernstgemeinte Kritik und Denkanstoesse sind hier sicherlich angebracht aber kein Rumgeflame.

Ich hoffe nur, dass christoph_999 endlich mal anfaengt Dokus zu lesen.
 
Und im Allgemeinen sage ich nur:

:trash:Der ROOTSERVER ist tot, es lebe der ROOTSERVER! :trash:

Gruß Lumpi
 

Ähnliche Themen

Nginx: Virtuellen Unterordner im SCRIPT_FILENAME entfernen.

Script zur Korrektur einer E-Book Datei

Queue für copy Script

Probleme mit PHP-Scripten auf Apache-Server: Apache friert ein

Windows clients können nicht mehr auf lange laufendes System zugreifen

Zurück
Oben