Ithariel Posted June 23, 2015 Share 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. Link to comment Share on other sites More sharing options...
v3ng Posted June 23, 2015 Share 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? Link to comment Share on other sites More sharing options...
Ithariel Posted June 23, 2015 Author Share 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. Link to comment Share on other sites More sharing options...
nurtext Posted June 23, 2015 Share Posted June 23, 2015 Danke f?r die Anleitung und Namensnennung bei der L?sung mit dem deaktivieren des Caches f?r nscd Link to comment Share on other sites More sharing options...
Ithariel Posted April 16, 2016 Author Share 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. Link to comment Share on other sites More sharing options...
v3ng Posted June 24, 2015 Share 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.?. Link to comment Share on other sites More sharing options...
Ithariel Posted June 24, 2015 Author Share 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. Link to comment Share on other sites More sharing options...
Utini Posted December 29, 2015 Share 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 Link to comment Share on other sites More sharing options...
BoBBeer Posted March 29, 2016 Share 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? Link to comment Share on other sites More sharing options...
rZr Posted October 20, 2015 Share 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 .. Link to comment Share on other sites More sharing options...
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.
Link to comment
Share on other sites
9 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.