Vorwort: Quota funktioniert auf Nutzer- bzw Gruppenebene.
Als erstes müssen wir Quota installieren
apt install quota
Als nächstes müssen wir die Quota-config bearbeiten. Vorher erstellen wir ein Backup
cp /etc/fstab /etc/fstab.old
Nun können wir sie bearbeiten
nano /etc/fstab
Die Datei sollte in etwa so aussehen:
# /etc/fstab: static file system information.
UUID=06b2aae3-b525-4a4c-9549-0fc6045bd08e   / ext4    errors=remount-ro   0   1

Nun müssen wir sie ergänzen
# /etc/fstab: static file system information.
UUID=06b2aae3-b525-4a4c-9549-0fc6045bd08e   / ext4    errors=remount-ro,usrquota,grpquota   0   1

usrquota aktiviert Quota-Optionen für Nutzer
grpquota aktiviert Quota-Optionen für Gruppen
Als nächstes müssen wir unser Filesystem remounten
sudo mount -o remount /
Wir kontrollieren, ob alles geklappt hat
cat /proc/mounts | grep ' / '
Die Ausgabe sollte etwa so aussehen
/dev/sda1 ext4 rw,relatime,quota,usrquota,grpquota,errors=remount-ro 0 0
Nun müssen wir die Quotas aktivieren. Bevor wir das machen können, müssen wir noch den Quotacheck manuell ausführen
sudo quotacheck -ugm /
u = erstellen der Nutzerbasierenden Datei
g = erstellen der Gruppenbasierenden Datei
m = deaktiviert Remounting des Dateisystems
Dieser Befehl erstellt die Dateien /aquota.user und /aquota.group
Nun prüfen wir, ob die Dateien erstellt wurden
ls /
Jetzt können wir das Quota vollständig aktivieren
sudo quotaon -v /
Die Ausgabe sollte etwa so aussehen:
/dev/sda1 [/]: group quotas turned on
/dev/sda1 [/]: user quotas turned on

Wenn alles geklappt hat, können wir das Quota für einen Nutzer konfigurieren. Ich nehme den testuser aus meiner Samba-Server Anleitung.
sudo edquota -u testuser
-u = Nutzer
-g = Gruppe
Es sollte sich nun die Konfigurationsdatei für den Nutzer öffnen.
Diese sieht etwa so aus:

Datenträgerquotas für user testuser (uid 1001):
  Dateisystem                  Blöcke       weich      hart     Inodes     weich    hart
  /dev/sda1                         8                  0              0            2             0           0

Blöcke/blocks = Verbrauchter Speicher auf dev sda1 (1 Block = 1 KB)
weich/soft = Festgelegtes Kontingent (Binär in K, M, G, T)
hart/hard = Absolutes Kontingent Limit (Binär in K, M, G, T)
inodes = Anzahl der Dateien
weich/soft = Festgelegtes Kontingent Anzahl Dateien
hart/hard = Absolutes Kontingent Limit Anzahl Dateien
Wenn du bei weich und hart 0 stehen lässt, dann ist das Kontingent unbegrenzt.
Der Raum zwischen weich und hart ist ein Spielraum. Dazu später mehr.
Nun wollen wir unserem testuser ein Speicherkontingent zuweisen. Ich möchte meinen testuser 4 GB zuweisen.
Datenträgerquotas für user testuser (uid 1001):
  Dateisystem                  Blöcke       weich      hart     Inodes     weich    hart
  /dev/sda1                         8                  4G         5G            2             0           0

Datei speichern und schließen
Später kannst du die Einstellung auch so ändern (für Gruppen musst du statt dem -u ein -g setzen):
sudo setquota -u testuser 5G 6G 0 0 /
Jetzt kontrollieren wir die Einstellungen.
sudo quota -vs testuser
Die Ausgabe sollte etwa so aussehen:
Datenträgerquotas für user testuser (uid 1001):
  Dateisystem                  Blöcke       weich             hart         Inodes     weich    hart
  /dev/sda1                         8              4096M        5120M            2             0           0

Wir erstellen jetzt einen Report
sudo repquota -s /
Der Befehl listet alle Nutzer, deren Verbrauch und Kontingent auf.
Das sieht etwa so aus:
*** Report für user Quotas auf Gerät /dev/sda1
Blockgnadenfrist: 7days; Inodegnadenfrist: 7days
                        Platz Limits                Dateilimits
Benutzer        belegt  weich   hart  Gnade   belegt weich hart  Gnade
----------------------------------------------------------------------
root      --   1457M      0K      0K          39650     0     0
man       --   1256K      0K      0K            145     0     0
_apt      --     12K      0K      0K              3     0     0
systemd-timesync --      4K      0K      0K              2     0     0
serverarbeit --     16K      0K      0K              4     0     0
testuser    --      8K   4096M   5120M              2     0     0

Konfigurieren der Grace Period / Gnade
Wenn ein Nutzer die soft-Einstellung überschritten hat, muss er innerhalb der Grace Period/Gnade wieder unter sein soft-Limit kommen. Wenn er dies nicht tut, wird ihm weiter Speicherplatz verwehrt.
Wir stellen eine Periode von 10 Tagen ein.

Das ganze muss in Sekunden eingestellt werden.
10 Tage = 864000s
sudo setquota -t 864000 0 /
Die erste Zeit stellt die Gnade für den Speicherplatz ein und die Zweite für die Dateien. Diese Zeit wird für alle Nutzer und Gruppen gesetzt.
Um zu kontrollieren, ob alles geklappt hat
sudo repquota -s /
Wenn die Zeit in der 2. Zeile stimmt, ist die Konfiguration abgeschlossen.

Zuletzt geprüft und bearbeitet: 30. Apr 2023 @ 4:35