Hi
Ich habe eine "/data" Platte auf welcher ich journaled User quotas eingerichtet habe. https://www.howtoforge.com/how-to-set-up-journaled-quota-on-debian-lenny (Ja die Anleitung funktioniert auch für Ubuntu)
Danach habe ich mit "quotatool" für einen testuser einen 50MB quota eingerichtet.
"quotatool -u mytestuser -b -q 50M -l 50M /data"
Das ganze jetzt mit dd getestet:
1 2 3 4 5 | dd if=/dev/zero of=bigfile.dd bs=1M dd: error writing 'bigfile.dd': Disk quota exceeded 50+0 records in 49+0 records out 52404224 bytes (52 MB) copied, 0.0597391 s, 877 MB/s |
Nach 50MB bricht er mit einem "Disk quota exceeded" Fehler ab, alles so wie es sein soll.
Der User hat auch einen Zugang über proftpd und hier tritt jetzt leider ein Problm auf. Ich versuche ein 60MB Datei hochzuladen, nach 50MB greift der Disk quota und es gibt einen I/O Error. Leider sendet Proftpd jetzt kein "550 Disk Quota exceeded" sondern einen "451 Transfer aborted. Eingabe-/Ausgabefehler".
4XX Fehler sind temporär → somit versucht es der FTP Client wieder (Filezilla versucht das unbegrenzt lange zu wiederholen ☹ )
Wie bekomme ich proftp dazu den richtigen Fehlerwert zurückzuschicken ohne das ich die Quotas doppelt verwalten muss?
Als workarround könnte ich den selben Quota mit mod_quota in proftp einrichten, dann würde das auch funktionieren, dann muss ich aber alles doppelt halten. Das will ich unbedingt verhindern. Unter umständen zählen die beiden nicht gleich proftpd läßt ein 50,00001MB File durch, das dann aber der Disk Quota nicht schreiben will was wieder zu der "451" Schleife führen würde. Bei dem "dd" oben sieht man auch das hier irgendwas anders zählt (52 MB).
keros