Dateisystem-Quota in Linux
Mit wenigen Schritten lässt sich in Linux eine Quota für Benutzer oder Gruppen einrichten. Im Gegensatz zur Quota in Windows kann diese nicht nur für das gesamte Dateisystem, sondern für einzelne Verzeichnisse definiert werden.
Installation der Softwarepakete
Zu allererst müssen Pakete nachinstalliert werden. Für Debian und seine Abkömmlinge über diesen Befehl:
sudo apt update && sudo apt -y install quota quotatool
Definition in fstab
Die Quota muss für jedes betroffene Dateisystem in der Datei /etc/fstab
aktiviert werden. Je nach Kernel und Dateisystem gibt es zwei Möglichkeiten.
Für Steinzeit-Kernel und Dateisysteme ohne Journal ergänzt ergänzt man die Option usrquota:
/dev/sda3 /home ext2 defaults,usrquota 0 2
Soll eine Quota für Gruppen genutzt werden, ergänzt man zusätzlich die Option grpquota:
/dev/sda3 /home ext2 defaults,usrquota,grpquota 0 2
Für moderne Kernel und Dateisysteme mit Journal wird dringend diese Alternative empfohlen:
/dev/sda3 /home ext4 defaults,usrjquota=aquota.user,jqfmt=vfsv1 0 2
Auch hier wird die Quota für Gruppen über eine Zusatzoption aktiviert:
/dev/sda3 /home ext4 defaults,usrjquota=aquota.user,qrpjquota=aquota.group,jqfmt=vfsv1 0 2
Die Änderungen werden wahlweise mit einem Neustart oder mit diese Befehl aktiviert:
sudo mount -vo remount /home
Quota-Index erstellen
Zu allererst wird ein Index erstellt:
sudo quotacheck -cum /home
Wer die gruppenbasierte Quota aktiviert hat, muss den Parameter -g ergänzen, damit der entsprechende Index ebenfalls erstellt wird:
sudo quotacheck -cugm /home
Je nach Größe des Dateisystems kann dieser Prozess etwas länger dauern. Der Index muss zwingend erstellt werden. Ohne ihn scheitern alle weiteren Schritte.
Quota aktivieren
Anschließend kann die Quota aktiviert werden:
sudo quotaon -v /home
Quota deaktivieren
Sollte es jemals erforderlich werden, die Quota zu deaktivieren, erfolgt das mit einem sehr ähnlichen Befehl:
sudo quotaoff -v /home
Beschränkungen konfigurieren
Es ist nicht zwingend erforderlih, Beschränkungen für jeden Benutzer zu konfigurieren. Es ist noch nicht einmal erforderlich irgendeine Beschränkung zu konfigurieren. Das Aktivieren der Quota erzeugt bereits deutliche Zugewinne in der Performance von Befehlen wie du
. Wer häufig derartige Befehle nutzt, darf gerne darüber nachdenken, eine Dateisystemquota ohne Limits zu aktivieren.
Der eigentliche Sinn einer Quota ist jedoch die Beschränkung des verfügbaren Speicherplatzes für einzelne oder alle Benutzer bzw. Gruppen. Das wird mit dem Befehl edquota
eingerichtet:
sudo edquota heikorichter
Es öffnet sich ein Texteditor mit folgendem Inhalt:
Disk quotas for user heikorichter (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda3 24 1000000 1048576 6 0 0
Die einzelnen Einträge sind schnell erklärt:
blocks
Anzahl der 1K-Blocks, die der Benutzer aktuell belegt.
soft
Wenn der Benutzer dieses Limit an 1K-Blocks erreicht hat, erhält er eine Warnung.
hard
Maximale Anzahl an 1K-Blocks, die dem Benutzer zur Verfügung stehen.
inodes
Anzahl der INodes, die der Benutzer aktuell belegt.
soft
Wenn der Benutzer dieses Limit an INodes erreicht hat, erhält er eine Warnung.
hard
Maximale Anzahl an INodes, die der Benutzer belegen kann.
Zusätzlich kann über den Befehl
sudo edquota -t
ein Zeitlimit definiert werden. Dadurch kann ein Benutzer temporär die Warnschwelle überschreiten ohne eine Warnung zu erhalten. Die konfiguration erfolgt ebenfall im Texteditor, der sich nach Eingabe des Befehls öffnet. Das Zeitlimit kann für Inodes und 1K-Blocks verschieden definiert werden.
Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sda3 7days 7days
Berichte
Dieser Befehl zeigt einen Bericht über die Quotas aller Dateisysteme:
sudo repquota -a
Selbstverstänlich kann auch ein Bericht für eine spezifische Partition erstellt werden:
sudo repquota /home
Um die Quotas eines Benutzers anzuzeigen ohne dabei im Texteditor zu landen, gibt es natürlich ebenfalls einen passenden Befehl:
sudo quota -u heikorichter
Wer gruppenbasierte Quotas aktiviert hat, kann sich auch die Quotas einer Gruppe anzeigen lassen:
sudo quota -g users
Quotas übertragen
Auf Systemen mit vielen Benutzern und Gruppen mag man davor zurückschrecken, für jeden Benutzer die Quota händisch zu konfigurieren. Das ist jedoch nicht erforderlich. Einstellungen können bequem von einem Benutzer zu einem anderen kopiert werden:
sudo edquota -p heikorichter newuser
Das Gleiche funktioniert natürlich auch bei einer gruppenbasierten Quota:
sudo edquota -g -p users newusers
Selbstverständlich ist es auch möglich, die Quota eines Benutzers auf alle anderen Benutzer zu kopieren. Das kann sehr Hilfreich sein, um bei einem Fileserver mit hunderten Benutzerkonten Quotas zu einzuführen oder zu ändern:
edquota -p heikorichter $(awk -F: '$3 > 999 {print $1}' /etc/passwd)
Sonstiges
- Über das Kommando
warnquota
ist es möglich, eine Warnung mit den aktuellen Werten an alle Benutzer zu senden. Das bietet sich besonders an, wenn Quotas neu eingeführt wurden oder sich die Limits geändert aben. Wie diese Warnung aussieht und wie sie versandt wird, lässt sich in der Datei/etc/warnquota.conf
konfigurieren. - Über das Kommando
quotastats
lassen sich diverse Statistiken einsehen. Hier kann auch abgeschätzt werden, wie sehr sich die Quota auf die Performance des gesamten Dateisystems auswirkt.
Leave a Comment
Du musst angemeldet sein, um einen Kommentar abzugeben.