Problem mit Apache-Prozess- und Dateirechten

testit

Well-Known Member
Hallo,

wenn ich auf meinem "neuen" FreeBSD-Server im Apache-Verzeichnis irgendwelche Dateien für eine Website anlegen, erhalten diese automatisch die Owner:Group ROOT/WHEEL.

Der Apache-Webserver 2.0 läuft allerdings unter dem USER WWW.

Das führt bei mir dazu, dass bspw. eine unter Apache laufende Joomla-Installation keine Dateien ändern kann, wenn die "Rest-der-Welt"-Rechte der abzuändernden Dateien nicht auf "w" gesetzt sind. Das ist ja im Zusammenhang mit einer Anwendung unter Apache (Hier Joomla) eigentlich nicht im Sinne des Erfinders, oder etwa doch?

Frage: Wie löst man dieses Problem am elegantesten?

a) Doch bei allen Ordnern/Dateien das "w"-Flag für "Rest-der-Welt" setzen?
b) User WWW, unter dem Apache läuft, der Gruppe WHEEL zufügen?
c)?

Danke und Gruß
testit
 
Hallo,

vielen Dank für Eure Hinweise!

Ich habe eben mal getestet, welche Owner/Group-Eigenschaften eine via SFTP auf den Server übertragene Datei defaultmäßig zugewiesen bekommt:
root:www

Beim neuen Server ist es derzeit:
root:wheel

Dadurch trat mein im Ausgangsbeitrag beschriebenes Problem nie auf.

Ich kann mich noch daran erinnern, dass ich damals irgendwas auf dem Server so einstellen musste, dass alle von mir angelegten Dateien automatisch auf root:www gesetzt waren, obwohl user root nicht der Gruppe www zugewiesen war.

Aber wie ich das damals bewerkstelligt habe, weiß ich derzeit nicht mehr.
 
Hallo,

habe eben mal getestet: Oben genannte Defaulteinstellungen ergeben sich sowohl beim Anlegen von Datein auf Shell-Eben (touch etc.) als auch bei Filetransfers via SFTP.

Da sind die beiden üblichen Methoden, die ich nutze.


Nette Grüße
testit
 
Irgendwie reden wir aneinander vorbei.

Die Dateien und Verzeichnisse im Webserverroot gehören root:wheel und haben einen access von drwxr-xr-x bzw. -rw-r--r--.
Der Webserver gehört aber www.
Der kann jetzt wegen der access-Rechte das root-Verzeichnis des Webservers lesen, aber nicht ändern.

Jetzt hast Du joomla installiert und joomla will ein Verzeichnis haben, nennen wir es mal upload in das der user www schreiben können muß. Die genauen Verzeichnisrechte findest Du meist irgendwo im Install.txt und weden oft großzügig über chown 777 geregelt.

Ich würde das Problem so lösen, daß ich das Verzeichnis Upload dem user www:www in die Hand drücke und die Rechte auf nur user oder user & Gruppe darf schreiben/lesen setze.
Als nächstes baue ich ein Script in dem ich die Rechte mit chown und chmod automatisch im webroot einrichten kann. Wenn ich dann mal ein Update mache und alles verbogen ist, jage ich das drüber und schon funktioniert alles wieder.

Was spricht für Dich gegen diese Lösung?
 
Nicht als root arbeiten. Erstell einen User, der in der korrekten Gruppe ist, mach passende umask-einträge für den Purschen in der login.conf, und benutz den Account dann zum Arbeiten.
 
Hi,

dagegen spricht, dass man diesen Aufwand bei jedem kleinen Firlefranz bzw. jeder Installation betreiben muß. Und dieser Aufwand ist NUR deswegen nötig, weil beim Überspielen des Joomlainstall-Paketes dieses automatisch mit root:wheel statt root:www gesetzt wird, was wiederum beim Entpacken auf den Server "geerbt" wird.

Es gibt überhaupt keinen zwingenden Grund, hierfür root:wheel als Standard einzurichten.

Das alles kann man sich sparen, wenn einfach gleich die GRUPPE stimmt, da die Rechte für die Gruppe (Datei- und Ordnerbezogen) schon bei der Installation korrekt gesetzt sind.


Nette Grüße
testit


I

Jetzt hast Du joomla installiert und joomla will ein Verzeichnis haben, nennen wir es mal upload in das der user www schreiben können muß. Die genauen Verzeichnisrechte findest Du meist irgendwo im Install.txt und weden oft großzügig über chown 777 geregelt.
 
Naja wenn du eine Datei mit dem Root-Account anlegst, dann gehört die auch root:wheel. Ist doch eigentlich logisch.
Verwende nicht den Root-Account, sondern den des Webservers (also www) und dann gehören die Dateien auch www:www.

Sich direkt als root einzuloggen ist eh net die schönste Art.
 
Vielleicht versuchst Du einfach mal man chmod oder Du setzt Dich mit chmod -R g+s /usr/local/www/apacheXX/data auseinander?
 
Vielleicht versuchst Du einfach mal man chmod oder Du setzt Dich mit chmod -R g+s /usr/local/www/apacheXX/data auseinander?

Nein, eben nicht. Damit bügelst du das komplette Berechtigungssystem, dass die Entfrickler sich da ausgedacht haben über.
Der Krempel muss einfach nur von nem entsprechenden User entpackt werden, der in der selben Gruppe ist, unter dem der httpd läuft.
 
Nein, eben nicht. Damit bügelst du das komplette Berechtigungssystem, dass die Entfrickler sich da ausgedacht haben über.
Der Krempel muss einfach nur von nem entsprechenden User entpackt werden, der in der selben Gruppe ist, unter dem der httpd läuft.

Da hast Du ja vollkommen recht mit, aber genau das will er doch scheinbar nicht? :rolleyes:
 
Zurück
Oben