Jump to content
Froxlor Forum
  • 0

Quota Limit kann nicht gesetzt werden


O100

Question

Hi,

ich nutze seit kurzen Froxlor und habe ein Problem. Und zwar kann kei Soft und Hard Limit als Quota gesetzt werden für die jeweiligen Kunden.

quotatool: User 65544 does not exist

Froxlor legt unter /var/customer/webs/ entsprechend die Ordner für Webspace der Kunden an und legt als Owner eine GUID fest:

[root@mail webs]# ll
drwxr-xr-x  3  65544  65544 4096 Sep  5 15:39 test2/

Den User mit der GUID gibt es natürlich nicht. Deshalb schlägt auch das setzen der Soft und Hard Limits fehlt. Auch wenn ich neue Kunder anlegen, das Problem tritt immer auf.

 

Ich nutze CentOS 7.3, PHP 7.0.23 und Froxlor 0.9.38.7

 

Woran liegt das Problem?

   
Link to comment
Share on other sites

16 answers to this question

Recommended Posts

Hallo,

ohne mich bisher näher mit Quota und deren Einrichtung auseinander gesetzt zuhaben, klingt das für mich danach als müsstest du noch "libnss-mysql" einrichten.

Schau mal im Adminbereich unter "Konfiguration" nach: dort deine Distro auswählen und den Service "Sonstige (System)" auswählen. Unter Daemon findest du dann "libnss-mysql". 

Ich kann dir aber nicht sagen, ob das wirklich dein Problem löst, es klingt für mich aber danach.
Sollte ich damit komplett falsch liegen, bitte die Antwort ignorieren / korregieren.

Gruss cardman

Link to comment
Share on other sites

@cardman: Hab ich gerade installiert Problem hat sich nicht verändert, muss noch irgendwas eingestellt werden?

 

Also wenn ich das PHP Skript bearbeite wo das quotatool getriggert wird und den quotatool Befehl anpasse (einen : vor der UID/GID setze), dann funktioniert das Quota entsprechend. Allerdings ist mir ein neues Problem im Zusammenhang mit Quotas aufgefallen: Wenn ich in dem Webspace vom Kunden eine Nextcloud Instanz am laufen habe und Dateien hochlade, dann werden die mit dem Owner des Webservers (apache) angelegt, und nicht mit der UID vom Kunden. Daraus resultiert, dass das Quota nicht greift für Upload über Nextcloud da die UID nicht die dem Kunden entspricht. Wie wird das in Froxlor gehandt habt, bzw. wie kann ich die Dateien gleich entsprechend anlegen damit der Owner gleich der UID des Kunden ist, damit das Quota greift?

Link to comment
Share on other sites

Hallo,

damit das mit dem Owner klappt darfst du PHP nicht als Apache Modul installieren.
Stattdessen muss es als FCGID oder PHP-FPM eingebunden werden. Entsprechende Anleitungen findest du auf der Github seite von Froxlor im Bereich WIKI.

Für beide Lösungen findest du wieder im Adminbereich unter "Konfiguration" nach der Auswahl deiner Distro  und des Services "Sonstige (System)" im Bereich Daemon die Installations- und Konfigurationsanleitungen.

Damit sollte auch das Problem gelöst werden.

Gruss Cardman

Link to comment
Share on other sites

Hi,

ok hab es PHP-FPM installiert. Jetzt möchte Froxlor nicht mehr die Quota über die UID anlegen sondern den Kundennamen/Benutzer. Problem beim Cronjob:

chown: invalid user: ‘test:test’

Klar, den User gibt es nicht in /etc/passwd und /etc/shadow. Sollte Froxlor wenn dann die User nicht von selbst anlegen oder wie ist das?

Link to comment
Share on other sites

Hallo,

die User werden auch mit Libnss-mysql nicht wirklich angelegt.
Die Benutzer werden damit nur aus der Datenbank ausgelesen. Zur Not, wenn du in Froxlor selbst keinen Benutzer "test" angelegt hast, dann leg ihn einfach im System an, ohne Berechtigung und dann sollte das Problem normalerweise behoben sein.

Grundsätzlich sollte es aber keine Benutzer geben, die es nicht gibt, ausser du hättest z.B. nachträglich über die Datenbank einen Benutzernamen geändert. Dann kann es sein, das in den Tabellen "ftp_users" und "ftp_groups" noch fehlerhafte Einträge sind, die zu diesem Problem führen.

 

Gruss cardman

Link to comment
Share on other sites

Das ist irgendwie keine schöne Lösung finde ich. Wie wird das denn generell realisiert, ich meine den Use Case den ich hier habe ist nicht irgendwie abstrakt und abwägig sondern ich möchte einfach das der im WebUI eingestellt Webspace auch eingehalten wird.

Link to comment
Share on other sites

Hasst du den in den beiden Tabellen in der Froxlor-Datenbank nachgeschaut, ob dort was mit test angelegt ist?

Das Problem hatte ich nämlich mal gehabt. Ich hatte bei einem User nachträglich, über die Datenbank, den Benutzername angepasst. Damit begannen die Probleme. Erst nachdem ich die beiden "ftp_*" Tabellen auch angepasst hatte, war das Problem beseitigt.

Link to comment
Share on other sites

Komisch.
Dann musst du mal nachschauen, wo der User "test" her kommt. Irgendwo muss der ja stehen, ohne das er existiert.
Vielleicht mal auf dem Server im "webs" Ordner schauen, ob es da einen Ordner gibt, der entweder als Eigentümer "test" hat oder nur eine UID da stehen hat.

Wenn es einen Ordner gibt, mit dem Benutzer Test, kannst du den anpassen.
Sollte es einen Ordner geben, der nur eine UID da stehen hat, dann könnte der das Problem auslösen, in dem die UID einem ungültigem Benutzer zugeordnet ist.

Link to comment
Share on other sites

Der User test existiert in Froxlor und in der DB. Unter webs gibt es einen Ordner test, dieser hat aber als Owner nur eine UID die nicht existiert. Das Problem ist also, das Froxlor keine Benutzer auf dem Server anlegt, sondern nur in Froxlor (also in der DB die in Froxlor entsprechend angezeigt werden). Die Ordner werden auch angelegt aber der Benutzer "test" existiert nicht auf dem Server sondern nur in der DB/Froxlor. Genauso wird die UID gesetzt und nicht der Benutzername. Es stellt sich eh die Frage ob Froxlor User auf dem Server anlegen sollte? Wie läuft das ab?

Link to comment
Share on other sites

Hallo,

vielleicht solltest du die UID für diesen Ordner ändern. Die richtige UID bekommst du aus der Datenbank.
Das Problem könnte daran liegen, das die Zuordnung zwischen der UID und dem Benutzer "test" nicht korrekt ist.

Die Fehlermeldung beim Cron-Job kommt von Apache. Wenn du dir den VHost für die dem User "test" zugeordneten Domain(s) anschaust, müsstest du dadrin etwas wie:
SuexecUserGroup "test" "test"
stehen. Wenn es den Benutzer "test" aber nicht gibt führt es zu diesem Problem bzw zu dieser Fehlermeldung.


Froxlor legt keine Benutzer an. Die Benutzernamen die angezeigt werden, stammen nur aus der Datenbank und sind nur virtuelle User.

Link to comment
Share on other sites

Wenn es sich um virtuelle Nutzer handelt ist das auch gut. Dann frage ich mich aber wieso bei mir dann aber das Problem auftritt?

 

GUID und Username stimmen laut Datenbank und auf dem Filesystem ist die GUID auch entsprechend angegeben. Trotzdem meckert mein Server, dass der User test nicht existiert und Apache entsprechend auch.. Vorallem: Warum werden die Ordner und Quotas einerseits angelegt mit der GUID als Owner und andererseits dann dem Usernamen?

 

Apache sagt: Invalid command 'FastCgiExternalServer', perhaps misspelled or defined by a module not included in the server configuration

phpinfo sagt allerdings: FPM/FastCGI

 

Update:

Okay ich habe in den letzten Tagen gefühlt alles abgegrast im Netz was ich zu der Problematik finden konnte. Gerade habe ich das hier gefunden:

Beschreibt einen Teil meines Problems. Ich habe nun wie in dem Thread beschrieben nscd ausgeschaltet und siehe da, die Owner werden nun entsprechend gesetzt für die Ordner. Da gibt es wohl seit 3 Jahren einen Bug in nscd der nicht gefixt wird. Damit wäre Teil1 behoben, ich denke ohne nscd sollte es keine Probleme geben.

Teil2 ist, dass die VHosts noch als apache User ausgeführt werden, da der Apache sagt: Invalid command 'FastCgiExternalServer', perhaps misspelled or defined by a module not included in the server configuration

:/ Ideen?

 

 

Link to comment
Share on other sites

Hallo,

schau mal hier nach:
https://github.com/Froxlor/Froxlor/wiki/apache2-with-fcgid

unter dem Punkt
"Setting up suexec" damit wird der Apache unter dem User des Eigentümers ausgeführt.

 

Zu dem Fehler schau mal hier nach:
https://forum.froxlor.org/index.php?/topic/12710-invalid-command-fastcgiexternalserver/
grundsätzlich könnte das helfen.

Gruss cardman

Link to comment
Share on other sites

On 8.9.2017 at 2:44 PM, O100 said:

Ich würde das gerne über PHP FPM lösen...

Das Problem ist ich finde nirgends das Modul mod_fastcgi zum installieren für Centos 7 weil es outdated ist wie auch in dem Thread erwähnt wird.

a2enmod proxy_fcgi

Funktioniert das?

Wenn ja, dann in froxlor unter Einstellungen für PHP-FPM ganz unten mod_proxy_cgi aktivieren.

Ansonsten schau mal hier, da ist es zwar unter Debian 9 beschrieben sollte aber nicht viel anders sein.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...