Jump to content
Froxlor Forum
  • 0
Sign in to follow this  
O100

Quota Limit kann nicht gesetzt werden

Question

O100    0

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?

   

Share this post


Link to post
Share on other sites

16 answers to this question

Recommended Posts

  • 0
cardman    1

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

Share this post


Link to post
Share on other sites
  • 0
O100    0

@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?

Share this post


Link to post
Share on other sites
  • 0
cardman    1

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

Share this post


Link to post
Share on other sites
  • 0
O100    0

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?

Share this post


Link to post
Share on other sites
  • 0
cardman    1

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

Share this post


Link to post
Share on other sites
  • 0
O100    0

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.

Share this post


Link to post
Share on other sites
  • 0
cardman    1

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.

Share this post


Link to post
Share on other sites
  • 0
cardman    1

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.

Share this post


Link to post
Share on other sites
  • 0
O100    0

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?

Share this post


Link to post
Share on other sites
  • 0
cardman    1

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.

Share this post


Link to post
Share on other sites
  • 0
O100    0

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?

 

 

Share this post


Link to post
Share on other sites
  • 0
cardman    1

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

Share this post


Link to post
Share on other sites
  • 0
O100    0

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.

Share this post


Link to post
Share on other sites
  • 0
cardman    1

Ich hab leider mit CentOS 7 keine Erfahrung, ich nutze für meine Server Debian als System. Vielleicht kann ja jemand anderes helfen.

Share this post


Link to post
Share on other sites
  • 0
J-B    0
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  



×