Ithariel Posted June 23, 2015 Posted June 23, 2015 Seit ich auf FCGID / FPM umgestellt habe erhalte ich ein "Forbidden"! Was kann ich tun? Dieses Problem scheint in letzter Zeit viele Nutzer von Froxlor zu beschäftigen, weshalb ich hier einmal genauer auf das Problem eingehen möchte. Beachtet bitte, dass dieser Beitrag auf Basis von Debian mit Apache angelegt wurde. Wie kommt das Problem zu Stande? Froxlor hat in einer der Letzten Versions Updates die Standard Berechtigung von Kunden-Verzeichnissen von 755 drwxr-xr-x auf 750 drwxr-x--- geändert. Dadurch haben nur noch Besitzer und Gruppen-Mitglieder Zugriff auf das Kunden-Verzeichnis. Wenn nun ein neuer Kunde angelegt wird, wird dieser in die Datenbank geschrieben. Genau genommen handelt es sich dabei um den FTP User welcher beim Anlegen eines Kunden in Froxlor mit angelegt wird. Dieser erhält zeitgleich auch eine eigene Gruppe. Im Anschluss wird der Webserver User, im normal Fall ist das www-data, dieser Gruppe hinzugefügt. Dieser User sowie die Gruppe und die Zugehörigkeit von www-data werden jeweils von libnss-bg-mysql aus der Datenbank ausgelesen. Damit bei einem Dateisystem Aufruf nicht jedesmal ein Datenbank Query gefahren werden muss, wird das ganze mittels dem NSCD Dienst gecached. Wenn nun nach dem Anlegen eines Kunden der Gruppen Cache noch nicht abgelaufen ist, kann der Webserver noch nicht auf das Kunden Verzeichnis Zugreifen, was zu dem Fehler "Forbidden" führt. Was kann ich gegen dieses Problem tun? Es gibt mehrere Möglichkeiten um gegen das Problem etwas zu tun. Das einfachste währe wohl den Gruppen Cache zu deaktivieren. Dazu muss in der /etc/nscd.conf die folgende Zeile angepasst werden: enable-cache group yes Hier muss einfach das yes auf ein no abgeändert werden und im Anschluss der NSCD neu gestartet werden: /etc/init.d/nscd restart Als nächstes könnte man in der selben Konfiguration die TTL des Gruppen Caches verkürzen. Dazu muss der Wert in Sekunden angepasst werden: positive-time-to-live group 3600 Je nach System sollte man den Wert von 3600 problemlos auf 600 oder gar weniger reduzieren können. Zu guter letzt kann man noch den Gruppen Cache vom NSCD invalidieren. Dazu legen wir einfach folgende Datei an: /var/www/froxlor/scripts/webserver_restart.sh #!/bin/bash /usr/sbin/nscd -i group /etc/init.d/apache2 reload Und passen dessen Berechtigungen noch an: chown root:root /var/www/froxlor/scripts/webserver_restart.sh chmod 700 /var/www/froxlor/scripts/webserver_restart.sh Jetzt können wir in Froxlor unter Einstellungen -> Webserver-Einstellungen -> Webserver-Reload-Command einfach folgendes eintragen: /var/www/froxlor/scripts/webserver_restart.sh Nach dem Speichern wird nun unser Froxlor bei jedem Webserver Reload den Gruppen Cache invalidieren wodurch wir kein Frobidden mehr erhalten sollten.
v3ng Posted June 23, 2015 Posted June 23, 2015 Hallo, Danke f?r diese tolle Anleitung! Bei mir steht allerdings in der Datei "/etc/nscd.conf" statt "group" "passwd". Hat das Auswirkungen?
Ithariel Posted June 23, 2015 Author Posted June 23, 2015 Hallo, Danke f?r diese tolle Anleitung! Bei mir steht allerdings in der Datei "/etc/nscd.conf" statt "group" "passwd". Hat das Auswirkungen? Geh mal etwas weiter runter in der Datei. Der Part mit "passwd" ist f?r die User gedacht. Insgesamt m?sste es 4 Bl?cke geben: passwd, group, hosts und services.
nurtext Posted June 23, 2015 Posted June 23, 2015 Danke f?r die Anleitung und Namensnennung bei der L?sung mit dem deaktivieren des Caches f?r nscd
v3ng Posted June 24, 2015 Posted June 24, 2015 Geh mal etwas weiter runter in der Datei. Der Part mit "passwd" ist f?r die User gedacht. Insgesamt m?sste es 4 Bl?cke geben: passwd, group, hosts und services.Danke, das habe ich wohl ?bersehen .Spricht etwas dagegen, wenn ich den Wert z.B. auf 100 setzte? Hohe Auslastung o.?.
Ithariel Posted June 24, 2015 Author Posted June 24, 2015 Das kann ich dir leider nicht sagen Thunderbyte. Auf meinem kleinen vServer mit 2 Domains k?nnte ich den Gruppen Cache gleich ganz deaktivieren. Ob du dann Probleme haben wirst, kann ich nicht beurteilen. Versuch es doch einfach mal.
rZr Posted October 20, 2015 Posted October 20, 2015 Also ich habe den Fehler behoben, indem ich in der libnss-mysql.cfg bei Host anstatt 127.0.0.1 localhost eingetragen habe. Dann war auch der Fehler verschwunden, dass er angeblich nicht auf die Datenbank zugreifen kann K?nnt ihr ja mal testen ..
Utini Posted December 29, 2015 Posted December 29, 2015 ? Hmm ich habe die Anleitung im OP befolgt aber habe leider trotzdem noch die Fehlermeldung "Forbidden". Auf meinem Archlinux laptop habe ich die /etc/hosts ge?ndert auf "ip-des-server domain.com www.domain.com". Wenn ich nun im browser www.domain.com ?ffne erscheint die Fehlermeldung "forbidden". Eigtl. sollte hier testweise die richtige website mit richtigem inhalt erscheinen? ? ?@edit: libnss-mysql.cfg mit "localhost" anstatt "127.0.0.1" hat auch nichts gebracht :/ ?@edit2: DANKE AN Thunderbird: ?Das Problem war dass "Apache 2.4" nicht aktiviert war in den froxlor webserver einstellungen
BoBBeer Posted March 29, 2016 Posted March 29, 2016 Das Passt ja, wollte mich dazu gerade belesen. Verstehe ich es richtig, dass dass oben beschriebende das löst: Ich lege einen Kunden an. Der Legt ein FTP an und eine DB. Dann Läd der Benutzer ein System hoch, sagen wir WP hat aber keine Schreibrechte.... Oder habe ich da etwas falsch verstanden?
Ithariel Posted April 16, 2016 Author Posted April 16, 2016 Etwas spät, aber was solls. Das Problem äussert sich darin, dass nach anlegen des Kunden (also des virtuellen Users), der Webserver keine Lese-Berechtigung auf das Kundenverzeichnis hat. Dadurch gibt der Webserver einfach 403 Forbidden aus.
Question
Ithariel
Seit ich auf FCGID / FPM umgestellt habe erhalte ich ein "Forbidden"! Was kann ich tun?
Dieses Problem scheint in letzter Zeit viele Nutzer von Froxlor zu beschäftigen, weshalb ich hier einmal genauer auf das Problem eingehen möchte.
Beachtet bitte, dass dieser Beitrag auf Basis von Debian mit Apache angelegt wurde.
Wie kommt das Problem zu Stande?
Froxlor hat in einer der Letzten Versions Updates die Standard Berechtigung von Kunden-Verzeichnissen von
755 drwxr-xr-x
auf
750 drwxr-x---
geändert. Dadurch haben nur noch Besitzer und Gruppen-Mitglieder Zugriff auf das Kunden-Verzeichnis.
Wenn nun ein neuer Kunde angelegt wird, wird dieser in die Datenbank geschrieben.
Genau genommen handelt es sich dabei um den FTP User welcher beim Anlegen eines Kunden
in Froxlor mit angelegt wird. Dieser erhält zeitgleich auch eine eigene Gruppe. Im Anschluss wird der
Webserver User, im normal Fall ist das www-data, dieser Gruppe hinzugefügt.
Dieser User sowie die Gruppe und die Zugehörigkeit von www-data werden jeweils von libnss-bg-mysql aus
der Datenbank ausgelesen. Damit bei einem Dateisystem Aufruf nicht jedesmal ein Datenbank Query gefahren
werden muss, wird das ganze mittels dem NSCD Dienst gecached.
Wenn nun nach dem Anlegen eines Kunden der Gruppen Cache noch nicht abgelaufen ist, kann der Webserver
noch nicht auf das Kunden Verzeichnis Zugreifen, was zu dem Fehler "Forbidden" führt.
Was kann ich gegen dieses Problem tun?
Es gibt mehrere Möglichkeiten um gegen das Problem etwas zu tun. Das einfachste währe wohl den Gruppen Cache
zu deaktivieren. Dazu muss in der /etc/nscd.conf die folgende Zeile angepasst werden:
Hier muss einfach das yes auf ein no abgeändert werden und im Anschluss der NSCD neu gestartet werden:
Als nächstes könnte man in der selben Konfiguration die TTL des Gruppen Caches verkürzen. Dazu muss der Wert in Sekunden angepasst werden:
Je nach System sollte man den Wert von 3600 problemlos auf 600 oder gar weniger reduzieren können.
Zu guter letzt kann man noch den Gruppen Cache vom NSCD invalidieren. Dazu legen wir einfach folgende Datei an:
/var/www/froxlor/scripts/webserver_restart.sh
Und passen dessen Berechtigungen noch an:
Jetzt können wir in Froxlor unter Einstellungen -> Webserver-Einstellungen -> Webserver-Reload-Command
einfach folgendes eintragen:
Nach dem Speichern wird nun unser Froxlor bei jedem Webserver Reload den Gruppen Cache invalidieren wodurch wir kein Frobidden mehr erhalten sollten.
9 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.