Zum Inhalt springen

Quota: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(134 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''Quota''' - Begrenzungen des Speicherplatzes auf Datenträgern für Benutzer oder Benutzergruppen (Disc-Quota)


== Beschreibung ==
=== Beschreibung ===
=== Was sind Quota? ===
Quota ermöglicht die gezielte Begrenzung des belegbaren Festplattenspeichers auf einem System.
Benutzer, die an einem System arbeiten und dort ein persönliches Verzeichnis besitzen, neigen dazu, dass sie vielzuviel in dieses Verzeichnis speichern. Vom hochauflösenden A4-Scan einer Seite, bis über Briefe vom vorletzen Jahr, alles landet auf der Festplatte. Kein Wunder, dass dann nach kurzer Zeit bereits eine neue Festplatte fällig wird. Die Lösung dazu heisst ''Quota''. Mit Quota kann der Systemadministrator den verfügbaren Speicherplatz für jeden Benutzer oder Gruppe einschränken.


; Wichtige Hinweise
* Alle in [[/etc/fstab]] eingetragenen, beschreibbaren Partitionen auf gängigen Linux-Dateisystemen können mit Quota-Grenzen versehen werden
Quota werden zur Zeit für jede Partition ''seperat'' überwacht. Falls ein Benutzer auf mehrere Partitionen Schreibrechte hat, muss man für jede Partition eine einzelne Quota setzen, falls dies benötigt wird. Ob dies vorteilhaft ist oder nicht, darüber kann man sich streiten.
* Quota-Grenzen können pro Benutzer und pro Gruppe getrennt gesetzt werden
* Beschränkt werden können sowohl der verfügbare Block-Speicherplatz als auch die Anzahl der Inodes (Dateien und Verzeichnisse)
* Optional können bei Überschreitung von Quota-Grenzen (Limits) zusätzliche Aktionen ausgelöst werden, z. B. Benachrichtigung per E-Mail
* Quota greift unabhängig davon, ob der Zugriff lokal oder remote (z. B. per [[Secure Shell|SSH]] oder [[FTP]]) erfolgt


=== Wo kommen Quota zum Einsatz? ===
Für den Einsatz von Quota unter [[Linux]] wird das Paket '''''quota''''' benötigt. Es stellt die folgenden Werkzeuge zur Verwaltung der Speicherplatzbeschränkungen bereit:
Viele Computerbesitzer wissen gar nicht, wie stark sie durch Quota eingeschränkt werden. Ein gutes Beispiel dazu sind die Internet Provider. Viele Kunden von Ihnen empfangen E-Mails oder haben eine Homepage auf dem Server des Providers gespeichert. Auf den Servern des Providers sind auch Quota gesetzt, z.B. wie gross das E-Mail-Verzeichnis der Kunden sein darf.


Quota kommt vorallem bei Servern zum Einsatz. Denn nur dadurch lässt sich vermeiden, das Benutzer zuviel auf dem Server ablegen und dadurch die Festplatte füllen.
* ''edquota'': Bearbeiten der Quota-Einträge von Benutzern und Gruppen
* ''quotacheck'': Prüfen der Belegung und Erzeugen bzw. Aktualisieren der Quota-Dateien
* ''quotaon''/''quotaoff'': Aktivieren bzw. Deaktivieren der Quota-Überwachung auf Dateisystemen


=== Aktueller Status von Quota ===
Der Einsatz von Quota dient dazu, übermäßige Belegung von Festplattenspeicher zu verhindern
Der Quota-Support ist Teil der Kernelgeneration 2.2. Falls Ihr System keinen Quota-Support bereitstellt, empfehle ich ein Upgrade. Das Upgrade ist auch sonst sinnvoll, da die Kernelversionen 2.2.x neue, sinnvolle Features enthalten. Zur Zeit arbeitet Quota nur mit dem Dateisystem ext2.


=== Minimale Systemanforderungen ===
; Hinweis
==== Kernel ====
Die ständige Überprüfung aller Dateizugriffe auf die Einhaltung der Quota-Grenzen verursacht zusätzlichen I/O-Overhead.
Es wird mindestens ein Kernel der 2.0.x-Serie benötigt. Den Source kann man von<blockquote> <code>[./Ftp://metalab.unc.edu/pub/Linux/kernel/v2.0 metalab.unc.edu:/pub/Linux/kernel/v2.0]</code></blockquote>herunterladen. Natürlich funktioniert auch die Kernelgeneration 2.2.
* Quota belastet die Leistungsfähigkeit des Speichersystems
* Wenn geringe Latenzzeiten ein zentrales Kriterium sind, können Benutzerdaten auf eigene Partitionen ausgelagert werden, damit Quota nicht auf Partitionen mit latenzkritischen Anwendungen erforderlich ist
* Quota wird in der Praxis meist nur auf Partitionen aktiviert, auf denen Benutzerdaten abgelegt werden


==== Quota Software ====
=== Einsatzgebiete ===
Um Quota zu setzen, benötigt man noch die ''Quota Software''. Bei vielen neueren Distrubutionen ist die Quota Software bereits enthalten. Falls dies nicht der Fall ist, kann man sich den Source von<blockquote> <code>[./Ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/ ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/]</code></blockquote>herunterladen und kompilieren.
Dateisystem-Quotas werden überall dort eingesetzt, wo mehrere Konten einen gemeinsamen Speicherpool nutzen und unbegrenzter Verbrauch einzelner Konten die Verfügbarkeit des Systems gefährden könnte.


== Installation ==
Typische Einsatzszenarien:
== Syntax ==
* Mailserver: Begrenzung der Größe von Mailspools pro Benutzerkonto
=== Optionen ===
* Webhosting-Umgebungen: Begrenzung des verfügbaren Speicherplatzes pro Kundenaccount oder virtuellem Host
=== Parameter ===
* Multiuser-Systeme im Intranet oder Rechenzentrum: Begrenzung von Home-Verzeichnissen und Projektbereichen
=== Umgebungsvariablen ===
* Storage-Systeme mit gemeinsam genutzten Volumes (z. B. [[NFS]]- oder [[Samba-Server|Samba]]-Freigaben)
=== Exit-Status ===


== Konfiguration ==
Durch definierte Obergrenzen pro Benutzer, Gruppe oder Projekt wird verhindert, dass einzelne Teilnehmer den verfügbaren Plattenplatz erschöpfen und dadurch Dienste für andere Konten blockieren.
=== Dateien ===


== Anwendungen ==
=== Arten von Quota ===
== Sicherheit ==
== Dokumentation ==
=== RFC ===
=== Man-Pages ===
=== Info-Pages ===
=== Siehe auch ===


== Links ==
* Die Quotentypen bestimmen den Geltungsbereich:
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />


== Testfragen ==
{| class="wikitable options big"
<div class="toccolours mw-collapsible mw-collapsed">
! Art
''Testfrage 1''
! Zweck
<div class="mw-collapsible-content">'''Antwort1'''</div>
! Beschreibung
</div>
|-
<div class="toccolours mw-collapsible mw-collapsed">
| Benutzerquota
''Testfrage 2''
| Überwacht den von einzelnen Benutzern belegten Speicherplatz (Blöcke und Inodes).
<div class="mw-collapsible-content">'''Antwort2'''</div>
| Limits pro Benutzer.
</div>
|-
<div class="toccolours mw-collapsible mw-collapsed">
| Gruppenquota
''Testfrage 3''
| Überwacht den von Benutzergruppen belegten Speicherplatz (Blöcke und Inodes).
<div class="mw-collapsible-content">'''Antwort3'''</div>
| Limits pro Gruppe.
</div>
|-
<div class="toccolours mw-collapsible mw-collapsed">
| Kombination Benutzer-/Gruppenquota
''Testfrage 4''
| Kombination aus Benutzer- und Gruppenquota auf derselben Partition.
<div class="mw-collapsible-content">'''Antwort4'''</div>
| Benutzerquota hat höhere Priorität als Gruppenquota.
</div>
|}
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


= TMP =
* Quota-Grenzen legen die zulässige Nutzung fest:


== Verschiedene Kommandos ==
{| class="wikitable options big"
=== Quota ===
! Limit-Typ
Der Befehl <code>quota</code> ist für die Benutzer gedacht. Damit können Sie sich ihren aktuellen Stand ansehen:<blockquote> </blockquote>Hier sieht der Benutzer, wieviel Blöcke und Inoden er in Benutzung hat und wie seine Quota gesetzt ist. Sobald er eine seiner Softlimiten überschreitet, wird in der Spalte »grace« die noch nicht abgelaufene Grace Period angezeigt. Ausserdem wird der Wert, den der Benutzer überschritten hat, durch einen Stern markiert:<blockquote> </blockquote>Hier sieht der Benutzer, dass er sein Inoden-Soft-Limit überschritten hat. Die Grace Period dauert nun noch 15. Leider wird nicht angezeigt, was für eine Einheit die Grace Period hat. Hoffentlich wird dies in zukünftigen Versionen der Quota Software geändert.
! Beschreibung
|-
| Softlimit
| Ein Softlimit definiert einen Wert, der kurzfristig überschritten werden darf. Die zulässige Dauer der Überschreitung wird durch die ''Grace Period'' bestimmt.
|-
| Hardlimit
| Ein Hardlimit definiert einen Wert, der nie überschritten werden darf. Sobald das Hardlimit erreicht ist, werden weitere Schreiboperationen auf dem betroffenen Dateisystem abgelehnt.
|-
| Grace Period
| Die ''Grace Period'' ist die Frist, während der ein gesetztes Softlimit überschritten werden darf. Nach Ablauf der Grace Period werden Softlimits wie Hardlimits behandelt, bis die Nutzung wieder unter das Softlimit sinkt.
|}


=== Quotacheck ===
== Einbindung von Quota ==
Das Programm <code>quotacheck</code> wurde vorher schon einmal erwähnt. <code>quotacheck</code> erfasst den Platzverbrauch der einzeln Benutzer und Gruppen auf den Partitionen, auf den Quota eingeschaltet ist und schreibt die Ergebnisse in die Dateien <code>quota.user</code> und <code>quota.group</code>.


=== Repquota ===
=== Quota-Implementierungen ===
<code>repquota</code> erzeugt eine tabellarische Übersicht über die gesetzen Quota und den Platzverbrauch der Benutzer und Gruppen. Die ausführlichste Übersicht erhält man mit<blockquote> </blockquote>Das führt zu folgender Ausgabe:<blockquote> </blockquote>


= TMP =
Es gibt mehrere Möglichkeiten, Quoten unter Linux zu aktivieren. Siehe [[Quota/Realisierungen|Hauptartikel]]
Als Administrator eines Ubuntu-Systems (und natürlich jedes anderen Betriebssystems auch) möchte man eventuell nicht, dass die Benutzer zu viel Festplatten-Speicherplatz verbrauchen. Ist beispielsweise der Speicherplatz der Home-Partition vollständig aufgebraucht, so können sich die Benutzer oftmals nicht einmal mehr am grafischen X-Desktop anmelden, da hierbei Dateien erstellt werden müssen. Des Weiteren läuft ein System langsamer, wenn eine Festplatte, die gebraucht wird, "randvoll" ist. Abhilfe schafft hier das Programm Quota.


Quota erlaubt es, den Festplattenspeicher eines Systems spezifisch einzuschränken.
=== Quota-Einstellung mit externen Dateien auf ext4-Root-Dateisystem ===


    Alle in der /etc/fstab [4] gelisteten Geräten und Partitionen können beschränkt werden, solange diese beschreibbar und in einem gängigen Linux-Dateisystem vorliegen.
==== Voraussetzungen ====
* Kernel mit Quota-Unterstützung (Module ''quota_v1''/''quota_v2'')
* Paket ''quota'' installiert
* Root-Dateisystem '''/''' auf ext4 (Beispiel: ''/dev/sda1'')


    Jedes dort gelistete Gerät und jede Partition kann individuell für einzelne Benutzer oder auch für ganze Gruppen eingeschränkt werden.
==== /etc/fstab für Quota mit externen Dateien auf / ====


    Die Einschränkung kann sich sowohl auf den Festplatten-Speicherplatz beziehen, welcher zur Verfügung gestellt werden soll, als auch auf die Anzahl an Daten (inklusive Ordner), die angelegt werden dürfen.
1.&nbsp;In ''/etc/fstab'' wird festgelegt, dass auf ''/'' Quotas über externe Dateien verwendet werden:


    Man kann darüber entscheiden, ob neben dem Verhindern einer weiteren Speicherplatz-Vergabe weitere Aktionen ausgeführt werden sollen, beispielsweise das Benachrichtigen der betroffenen Person per E-Mail.
<syntaxhighlight lang="bash" highlight="" line copy>
/dev/sda1  /  ext4  defaults,usrquota,grpquota  0  1
</syntaxhighlight>


    Quota funktioniert, ganz gleich ob der Benutzer lokal am Rechner arbeitet oder von extern, z.B. per SSH oder FTP auf diesen zugreift.
* Gerätebezeichnung, Dateisystemtyp und zusätzliche Mount-Optionen sind an das lokale System anzupassen.
* Für journalisierte externe Quotas kann alternativ


Hinweis:
<syntaxhighlight lang="bash" highlight="" line copy>
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1
</syntaxhighlight>


Die ständige Überprüfung aller Dateizugriffe daraufhin, ob eine Grenze überschritten wird, ist natürlich nicht ohne Folgen. Quota belastet die Leistung der Festplatte. Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen. Daher sollte man Quota nur auf Partitionen aktivieren, auf denen Benutzer ihre Daten ablegen.
2.&nbsp;Anschließend wird das Root-Dateisystem mit den neuen Optionen neu eingehängt:


=== Wie funktioniert Quota? ===
<syntaxhighlight lang="bash" highlight="1" line copy>
mount -o remount /
</syntaxhighlight>


Quota wird nach der Installation vom System als Dienst ausgeführt. Es wird standardmäßig beim Booten geladen und muss daher nicht explizit gestartet werden. Nach dem Hochfahren wertet das Programm einige Dateien aus und sorgt nun selbstständig dafür, dass die Benutzer oder Gruppen nicht zu viel Speicherplatz in Anspruch nehmen.
3.&nbsp;Überprüfen, ob die Optionen aktiv sind:


Im Folgenden werden einige Begriffe erklärt, die man verstehen sollte, wenn man Quota verwenden will.
<syntaxhighlight lang="bash" highlight="1" line copy>
cat /proc/mounts | grep " / "
</syntaxhighlight>


==== Number of Disk Blocks und Number of Inodes ====
In der Ausgabe sollten ''usrquota'' und ''grpquota'' enthalten sein.


Ein Speicherplatz-Limit wird an der Stelle "Number of Disk Blocks" gesetzt, die Einheit eines Disk Blocks ist dabei ein Kilobyte. Ein Datei-Anzahl-Limit wird an der Stelle "Number of Inodes" gesetzt.
==== Externe Quota-Dateien auf / anlegen ====


==== Under Quota ====
Aktuelle Quota-Werkzeuge verwenden für externe Dateien üblicherweise die Namen ''aquota.user'' und ''aquota.group'' im Wurzelverzeichnis.


"Under Quota" bezeichnet den Zustand, welchen ein Benutzer oder eine Gruppe aus der Sicht von Quota hat, wenn der Umfang des verbrauchten Speicherplatzes und die Anzahl seiner angelegten Dateien sowohl das "Soft Limit" als auch das "Hard Limit" unterschreiten.
Veraltete oder beschädigte Quota-Dateien in `/` sollten gelöscht werden:


==== Limits ====
<syntaxhighlight lang="bash" highlight="1" line copy>
Hinweis:
rm -f /quota.user /quota.group /aquota.user /aquota.group
</syntaxhighlight>


Die Limits werden in Dateisystemblöcken festgesetzt. Wie groß die Blocke sind, findet man mit den jeweiligen Verwaltungstools zum Dateisystem heraus, beispielsweise tune2fs für ext-Dateisysteme.
Anschließend werden die Dateien für Benutzer- und Gruppenquotas auf dem Root-Dateisystem neu erzeugt:


===== Hard Limit =====
<syntaxhighlight lang="bash" highlight="1" line copy>
"Hard Limit" gibt den maximal zur Verfügung gestellten Speicherplatz oder die maximale Dateianzahl an. Der Benutzer kann dieses Limit nie überschreiten. Sollte er an dieses Limit stoßen, so hat es für ihn den gleichen Effekt, als wäre kein weiterer Speicherplatz auf der Partition vorhanden.
quotacheck -cugm /
Hinweis:
</syntaxhighlight>


Befindet sich ein Benutzer nahe am durch Quota gesetzten Hard Limit, so kann er sich eventuell nicht einmal mehr an der grafischen Oberfläche anmelden, da hierfür Speicherplatz für neu erstellte Dateien gebraucht wird. In dem Fall kann nur noch der Administrator durch eine Erweiterung des Hard Limits helfen, oder der User loggt sich in ein System-Terminal und löscht von dort Dateien.
* ''-c'': Quota-Dateien neu anlegen
* ''-u'', ''-g'': Benutzer- und Gruppenquotas
* ''-m'': kein temporäres Remount als read-only (wichtig für ''/'')
* ohne ''-a'': Prüfung nur für das angegebene Dateisystem ''/''


===== Soft Limit =====
Die erzeugten Dateien sollten als ''root:root'' mit Modus ''600'' existieren:
"Soft Limit" ist eine Begrenzung, welche kleiner oder gleich dem Hard Limit gesetzt werden muss. Wird das Soft Limit überschritten, so erhält der Benutzer den Zustand "Over Quota". Das Soft Limit kann bis zum Wert des Hard Limits überschritten werden, was allerdings mit Konsequenzen verbunden ist, welche vom Administrator bestimmt werden.


Ist die Verwendung eines Soft Limits nicht erwünscht, so werden die Limit-Werte von Soft Limit gleich denen von Hard Limit gesetzt.
<syntaxhighlight lang="bash" highlight="1" line copy>
ls -l /aquota.*
</syntaxhighlight>


==== Grace Period ====
==== Quota-Überwachung auf / aktivieren ====
Ist ein Benutzer Over Quota, hat also das Soft Limit überschritten, so erhält er eine Frist, die "Grace Period" genannt wird. Standardmäßig beträgt sie sieben Tage, kann aber frei vom Administrator gewählt werden. Während dieser Frist muss der Benutzer oder die Gruppe durch Verlagern, Löschen oder Komprimieren von Dateien den verbrauchten Speicherplatz wieder soweit reduzieren, dass der Under Quota Zustand erreicht wird.


Um sicherzugehen, dass sie von dem Umstand in Kenntnis gesetzt werden, können Administrator, Benutzer oder Gruppe über das Vorkommnis per E-Mail oder System-Mail informiert werden.
Nach der Initialisierung wird die Quota-Überwachung eingeschaltet:


Sollte der Benutzer die Frist von Grace Period versäumen, so nimmt sein derzeitig verbrauchter Speicherplatz das Hard Limit ein. Der Benutzer kann nun nicht mehr produktiv arbeiten und muss sich nun an den Administrator wenden, damit dieser ihm entweder die Frist verlängert, das Hard Limit etwas erhöht oder selber Dateien löscht.
<syntaxhighlight lang="bash" highlight="1" line copy>
quotaon -vug /
</syntaxhighlight>


;Grafik
* Mit ''quotaoff -vug /'' wird die Überwachung für ''/'' wieder deaktiviert.
* Einige Distributionen stellen systemd-Units wie ''quota.service'' bereit, die bei Bedarf für die automatische Aktivierung beim Booten genutzt werden.


Hier eine kleine Grafik, um die ganze Sache an einem Beispiel grafisch zu erläutern.
;Hinweis
: Auf aktuellen ext4-Kernels erscheint bei ''quotacheck''/''quotaon'' häufig eine Meldung wie:
<syntaxhighlight lang="console" highlight="" line copy>
Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated. You can enable the feature by unmounting the file system and running 'tune2fs -O quota <device>'.
</syntaxhighlight>


quota_grafika.png
: Diese Meldung weist darauf hin, dass externe Dateien auf ext4 als veraltet gelten. Wird explizit die Methode mit externen Dateien verwendet, kann die Warnung in vielen Umgebungen ignoriert werden.  


Auf der Partition /dev/sda2, welche als /home eingehängt wird, wird der Speicherplatz vom User Jan eingeschränkt. Sein Speicherplatz ist aufgeteilt in Under Limit und Soft Limit. Hard Limit stellt die ihm gesetzte Grenze dar.
Ob Quotas tatsächlich erzwungen werden, ist mit Testbenutzern zu prüfen.


== Installation ==
==== Limits und Gnadenfrist setzen ====
# apt install quota


Optional
Limits für Benutzer ''daniel'' auf dem Root-Dateisystem setzen:
# apt install quotatool


welches das Einstellen enorm vereinfacht und hier auch erklärt wird.
<syntaxhighlight lang="bash" highlight="1" line copy>
edquota -u daniel
</syntaxhighlight>


== Konfiguration ==
Der Editor zeigt typischerweise:
=== fstab einstellen ===
Im Folgenden wird anhand des oben grafisch dargestellten Beispiels erklärt, wie man nun eine konkrete Einschränkung vornimmt, und werden alternative Einstellmöglichkeiten aufgezeigt.


Nach der Installation muss als erstes die Datei /etc/fstab mit Root-Rechten in einem Texteditor geöffnet werden. Hier müssen nun die Dateisysteme gekennzeichnet werden, auf welchen Orte eingeschränkt werden sollen, damit Quota weiß, was kontrolliert werden soll.
<syntaxhighlight lang="console" highlight="" line copy>
Quotas for user daniel:
/dev/sda1: blocks in use: 8117, limits (soft=0, hard=0)
inodes in use: 470, limits (soft=0, hard=0)
</syntaxhighlight>


Hier eine Passage einer /etc/fstab, in welcher die /home-Partition gemountet wird. Dort liegt der Ordner ./Jan, welcher beispielshalber eingeschränkt wird:
Durch Anpassen der Soft- und Hardlimits für Blöcke und Inodes werden die Grenzen für ''/dev/sda1'' gesetzt.
# Entry for /dev/sda2 :
UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime 0 2


Damit Quota auf ein Dateisystem aufmerksam wird, müssen nun dieser Zeile ein oder zwei Attribute zugefügt werden [2]:
Die Gnadenfrist für Softlimits wird global definiert:
* usrquota - Hiermit können Einschränkungen für einzelne Benutzer eingerichtet werden.
* grpquota - Hiermit können Einschränkungen für ganze Gruppen eingerichtet werden.


Im Beispiel, wo später der Benutzer "Jan" eine Einschränkung erfahren soll, sieht die Zeile dann folgendermaßen aus:
<syntaxhighlight lang="bash" highlight="1" line copy>
# Entry for /dev/sda2 :
edquota -t
UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime,usrquota 0 2
</syntaxhighlight>


Hinweis:
Ausgabe:


Es ist auch möglich, auf der gleichen Partition Einschränkungen sowohl für Benutzer als auch für Gruppen gleichzeitig zu setzen. In diesem Fall fügt man einfach beide Attribute, durch Komma getrennt, an.
<syntaxhighlight lang="console" highlight="" line>
Grace period before enforcing soft limits for users:
/dev/sda1: block grace period: 7 days, file grace period: 7 days
</syntaxhighlight>


Nun muss das Dateisystem neu eingehängt werden. Wurde (wie in diesem Beispiel) das /home-Verzeichnis oder gar das Wurzelverzeichnis selber mit einem Attribut erweitert, funktioniert dies in der Regel nur durch einen Computer-Neustart. Für das /home-Verzeichnis kann man sich allerdings auch einfach aus allen bestehenden Benutzersitzungen abmelden und dann mit Strg + Alt + F1 in eine Textkonsole wechseln. Dort meldet man sich nun als root an und führt das Kommando init 1 aus. Dadurch wird das Betriebssystem vom Mehrbenutzerbetrieb in den Einzelbenutzerbetrieb geschaltet. Da root seine Partition auf /root und nicht auf /home hat, kann man nun die /home-Partition aushängen und wieder erneut einhängen. Anschließend wechselt man wieder mit init 3 in den Mehrbenutzermodus, meldet sich aus dem root-Konto ab und wechselt mit Strg + Alt + F7 wieder auf den grafischen Anmeldebildschirm.
==== Überprüfung ====
Überprüfung der aktuellen Kontingente und der Gnadenfrist für den Benutzer daniel:


Hinweis:
<syntaxhighlight lang="bash" highlight="1" line copy>
quota daniel
</syntaxhighlight>


Für diese Prozedur muss für root ein Passwort gesetzt sein.
==== Hinweise zur Performance und zum Einsatzbereich ====
Automatisches Erstellen der Dateien aquota.user beziehungweise aquota.group


Damit Quota funktionieren kann, müssen nun Informationen über die Datei-Rechte der einzelnen Benutzer und Gruppen auf der einzuschränkenden Partition gesammelt werden. Diese Informationen werden in Dateien namens quota.user und / oder quota.group in den jeweiligen Orten gespeichert.
* Die Prüfung der Quota-Grenzen bei Schreibzugriffen verursacht messbaren Overhead
* I/O-kritische Anwendungen können auf Partitionen ohne Quota gelegt werden
* Auf Multiuser-Systemen mit hohem Datenaufkommen bleibt die Nutzung von Quota auf ''/'' trotz externer Dateien ein pragmatischer Ansatz, insbesondere wenn Verwaltungswerkzeuge explizit ''aquota.*'' erwarten


Hierfür führt man als Root folgenden Befehl aus [3]:
sudo quotacheck OPTIONEN


Die Optionen sind
== Anhang ==
-a für all, also für alle zu überwachenden Dateisysteme aus der /etc/fstab
=== Siehe auch ===
 
<div style="column-count:2">
-c für create, also Schreiben der Dateien auf die Festplatte
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
 
</div>
-f für force, also Erzwingen der Operation
----
 
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
-M für try-remount, führt die Operation gegebenenfalls ohne Remount durch
 
-u für das Erstellen der aquota.user Datei, falls erforderlich
 
-g für das Erstellen der aquota.group Datei, falls erforderlich
 
In diesem Beispiel findet man nun im /home-Verzeichnis eine Datei aquota.user vor, die ja für diesen Nutzer angelegt wurde.
 
=== Abschließend ===
 
Jetzt muss Quota neu gestartet werden:
sudo /etc/init.d/quota restart
 
Um den Zugriff auf die Quota-Einträge für Benutzer und Gruppen nur dem root-Nutzer zu erlauben, ist Folgendes auszuführen:
sudo chmod 600 /quota.*
 
Die korrekte Funktionalität kann nun getestet werden. Folgender Befehl gibt eine Ansicht der Quota-Informationstabelle für Benutzer und Gruppen aus:
sudo repquota /
 
Hierbei bitte beachten, dass noch keine Quotas gesetzt sind.
 
=== Einstellungen ===
==== Einen User einschränken ====
Am Beispiel des Benutzers "otto" soll erklärt werden, wie man einen einzelnen Benutzer im Platzverbrauch auf der Festplatte einschränken kann. Der Befehl [3]
# Allgemein
sudo edquota -u <benutzername>
# Beispiel
sudo edquota -u otto
 
öffnet einen Editor, um die Quota für den Benutzer otto und alle Partitionen, für die Quota aktiviert wurde, zu editieren:
 
Disk quotas for user otto (uid 1001):
      Filesystem                  blocks      soft      hard    inodes    soft    hard
      /dev/hda2                        28    100000    102400          7        0      0
 
"blocks" zeigt die durch den User otto verwendeten Blöcke (in kB) für diese Partition an; "inodes" zeigt die Anzahl der Dateien an, die dem User otto gehören. Ändern sollte man nur die Werte soft und hard, die das Soft Limit und Hard Limit festlegen.
Eine Gruppe einschränken
 
Mittels des Befehls [3]
 
# Allgemein
sudo edquota -g <gruppenname>
# Beispiel
sudo edquota -g users
 
Disk quotas for group users (gid 999):
      Filesystem                  blocks      soft      hard    inodes    soft    hard
      /dev/hda3                      549    200000    204800        57        0      0
 
editiert man die Einstellungen für eine Gruppe.
 
=== Mehrere User einschränken ===
Möchte man Werte für Quota für alle Benutzer des Systems setzen, so kann man sich eines kleinen Shellskriptes behelfen. Zuerst setzt man die Quota-Werte bei einem Benutzer, beispielsweise wieder "otto". Danach führt man in einem Terminal [3]
sudo edquota -p otto `awk -F: '$3 > 1000 {print $1}' /etc/passwd`
aus. Dies überträgt die bei "otto" gesetzten Quota-Einstellungen auf alle lokalen Benutzer (also alle Benutzer mit einer Benutzer-ID, die größer als 1000 ist).
 
=== Grace Period setzen ===
Die Grace Period kann man mittels
sudo edquota -t
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/hda3                    1day                  1day
 
setzen. Hierfür können die Zeiteinheiten sec(onds), min(utes), hour(s), day(s), week(s) und month(s) verwendet werden.
 
== Quota-Kommandos ==
=== Quotaon und Quotaoff ===
Um Quota an- bzw. auszuschalten:
sudo quotaon -a
sudo quotaoff -a


=== Quotacheck ===
=== Dokumentation ===
Quotacheck scannt das Dateisystem nach der aktuellen Plattenauslastung:
<!--
sudo quotacheck -avugm
; Man-Page
quotacheck: Scanning /dev/sda1 [/] done
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
quotacheck: Checked 22685 directories and 177183 files


=== Repquota ===
; Info-Pages
Repquota liefert einen Bericht:
-->
sudo repquota /
*** Report for user quotas on device /dev/sda1
Block grace time: 7days; Inode grace time: 7days


                        Block limits                File limits
=== Links ===
User            used    soft    hard  grace    used  soft  hard  grace
==== Projekt ====
----------------------------------------------------------------------
==== Weblinks ====
root      -- 3770548      0      0        198636    0    0
# https://www.linuxhaven.de/dlhp/HOWTO/mini/DE-Quota-HOWTO.html
daemon    --     56      0      0              5    0    0
# https://www.debian.org/doc/manuals/securing-debian-manual/ch04s17.de.html
...
# https://debian-handbook.info/browse/de-DE/stable/sect.quotas.html
otto      +-  102524  95000  120000  6days      7    0    0


== Quellen ==
[[Kategorie:Quota]]
* Linux Quota mini-HOWTO 🇩🇪


[[Kategorie:Entwurf]]
</noinclude>

Aktuelle Version vom 27. November 2025, 09:11 Uhr

Quota - Begrenzungen des Speicherplatzes auf Datenträgern für Benutzer oder Benutzergruppen (Disc-Quota)

Beschreibung

Quota ermöglicht die gezielte Begrenzung des belegbaren Festplattenspeichers auf einem System.

  • Alle in /etc/fstab eingetragenen, beschreibbaren Partitionen auf gängigen Linux-Dateisystemen können mit Quota-Grenzen versehen werden
  • Quota-Grenzen können pro Benutzer und pro Gruppe getrennt gesetzt werden
  • Beschränkt werden können sowohl der verfügbare Block-Speicherplatz als auch die Anzahl der Inodes (Dateien und Verzeichnisse)
  • Optional können bei Überschreitung von Quota-Grenzen (Limits) zusätzliche Aktionen ausgelöst werden, z. B. Benachrichtigung per E-Mail
  • Quota greift unabhängig davon, ob der Zugriff lokal oder remote (z. B. per SSH oder FTP) erfolgt

Für den Einsatz von Quota unter Linux wird das Paket quota benötigt. Es stellt die folgenden Werkzeuge zur Verwaltung der Speicherplatzbeschränkungen bereit:

  • edquota: Bearbeiten der Quota-Einträge von Benutzern und Gruppen
  • quotacheck: Prüfen der Belegung und Erzeugen bzw. Aktualisieren der Quota-Dateien
  • quotaon/quotaoff: Aktivieren bzw. Deaktivieren der Quota-Überwachung auf Dateisystemen

Der Einsatz von Quota dient dazu, übermäßige Belegung von Festplattenspeicher zu verhindern

Hinweis

Die ständige Überprüfung aller Dateizugriffe auf die Einhaltung der Quota-Grenzen verursacht zusätzlichen I/O-Overhead.

  • Quota belastet die Leistungsfähigkeit des Speichersystems
  • Wenn geringe Latenzzeiten ein zentrales Kriterium sind, können Benutzerdaten auf eigene Partitionen ausgelagert werden, damit Quota nicht auf Partitionen mit latenzkritischen Anwendungen erforderlich ist
  • Quota wird in der Praxis meist nur auf Partitionen aktiviert, auf denen Benutzerdaten abgelegt werden

Einsatzgebiete

Dateisystem-Quotas werden überall dort eingesetzt, wo mehrere Konten einen gemeinsamen Speicherpool nutzen und unbegrenzter Verbrauch einzelner Konten die Verfügbarkeit des Systems gefährden könnte.

Typische Einsatzszenarien:

  • Mailserver: Begrenzung der Größe von Mailspools pro Benutzerkonto
  • Webhosting-Umgebungen: Begrenzung des verfügbaren Speicherplatzes pro Kundenaccount oder virtuellem Host
  • Multiuser-Systeme im Intranet oder Rechenzentrum: Begrenzung von Home-Verzeichnissen und Projektbereichen
  • Storage-Systeme mit gemeinsam genutzten Volumes (z. B. NFS- oder Samba-Freigaben)

Durch definierte Obergrenzen pro Benutzer, Gruppe oder Projekt wird verhindert, dass einzelne Teilnehmer den verfügbaren Plattenplatz erschöpfen und dadurch Dienste für andere Konten blockieren.

Arten von Quota

  • Die Quotentypen bestimmen den Geltungsbereich:
Art Zweck Beschreibung
Benutzerquota Überwacht den von einzelnen Benutzern belegten Speicherplatz (Blöcke und Inodes). Limits pro Benutzer.
Gruppenquota Überwacht den von Benutzergruppen belegten Speicherplatz (Blöcke und Inodes). Limits pro Gruppe.
Kombination Benutzer-/Gruppenquota Kombination aus Benutzer- und Gruppenquota auf derselben Partition. Benutzerquota hat höhere Priorität als Gruppenquota.
  • Quota-Grenzen legen die zulässige Nutzung fest:
Limit-Typ Beschreibung
Softlimit Ein Softlimit definiert einen Wert, der kurzfristig überschritten werden darf. Die zulässige Dauer der Überschreitung wird durch die Grace Period bestimmt.
Hardlimit Ein Hardlimit definiert einen Wert, der nie überschritten werden darf. Sobald das Hardlimit erreicht ist, werden weitere Schreiboperationen auf dem betroffenen Dateisystem abgelehnt.
Grace Period Die Grace Period ist die Frist, während der ein gesetztes Softlimit überschritten werden darf. Nach Ablauf der Grace Period werden Softlimits wie Hardlimits behandelt, bis die Nutzung wieder unter das Softlimit sinkt.

Einbindung von Quota

Quota-Implementierungen

Es gibt mehrere Möglichkeiten, Quoten unter Linux zu aktivieren. Siehe Hauptartikel

Quota-Einstellung mit externen Dateien auf ext4-Root-Dateisystem

Voraussetzungen

  • Kernel mit Quota-Unterstützung (Module quota_v1/quota_v2)
  • Paket quota installiert
  • Root-Dateisystem / auf ext4 (Beispiel: /dev/sda1)

/etc/fstab für Quota mit externen Dateien auf /

1. In /etc/fstab wird festgelegt, dass auf / Quotas über externe Dateien verwendet werden:

/dev/sda1   /   ext4   defaults,usrquota,grpquota   0  1
  • Gerätebezeichnung, Dateisystemtyp und zusätzliche Mount-Optionen sind an das lokale System anzupassen.
  • Für journalisierte externe Quotas kann alternativ
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1

2. Anschließend wird das Root-Dateisystem mit den neuen Optionen neu eingehängt:

mount -o remount /

3. Überprüfen, ob die Optionen aktiv sind:

cat /proc/mounts | grep " / "

In der Ausgabe sollten usrquota und grpquota enthalten sein.

Externe Quota-Dateien auf / anlegen

Aktuelle Quota-Werkzeuge verwenden für externe Dateien üblicherweise die Namen aquota.user und aquota.group im Wurzelverzeichnis.

Veraltete oder beschädigte Quota-Dateien in `/` sollten gelöscht werden:

rm -f /quota.user /quota.group /aquota.user /aquota.group

Anschließend werden die Dateien für Benutzer- und Gruppenquotas auf dem Root-Dateisystem neu erzeugt:

quotacheck -cugm /
  • -c: Quota-Dateien neu anlegen
  • -u, -g: Benutzer- und Gruppenquotas
  • -m: kein temporäres Remount als read-only (wichtig für /)
  • ohne -a: Prüfung nur für das angegebene Dateisystem /

Die erzeugten Dateien sollten als root:root mit Modus 600 existieren:

ls -l /aquota.*

Quota-Überwachung auf / aktivieren

Nach der Initialisierung wird die Quota-Überwachung eingeschaltet:

quotaon -vug /
  • Mit quotaoff -vug / wird die Überwachung für / wieder deaktiviert.
  • Einige Distributionen stellen systemd-Units wie quota.service bereit, die bei Bedarf für die automatische Aktivierung beim Booten genutzt werden.
Hinweis
Auf aktuellen ext4-Kernels erscheint bei quotacheck/quotaon häufig eine Meldung wie:
Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated. You can enable the feature by unmounting the file system and running 'tune2fs -O quota <device>'.
Diese Meldung weist darauf hin, dass externe Dateien auf ext4 als veraltet gelten. Wird explizit die Methode mit externen Dateien verwendet, kann die Warnung in vielen Umgebungen ignoriert werden.

Ob Quotas tatsächlich erzwungen werden, ist mit Testbenutzern zu prüfen.

Limits und Gnadenfrist setzen

Limits für Benutzer daniel auf dem Root-Dateisystem setzen:

edquota -u daniel

Der Editor zeigt typischerweise:

Quotas for user daniel:
 /dev/sda1: blocks in use: 8117, limits (soft=0, hard=0)
 inodes in use: 470, limits (soft=0, hard=0)

Durch Anpassen der Soft- und Hardlimits für Blöcke und Inodes werden die Grenzen für /dev/sda1 gesetzt.

Die Gnadenfrist für Softlimits wird global definiert:

edquota -t

Ausgabe:

Grace period before enforcing soft limits for users:
 /dev/sda1: block grace period: 7 days, file grace period: 7 days

Überprüfung

Überprüfung der aktuellen Kontingente und der Gnadenfrist für den Benutzer daniel:

quota daniel

Hinweise zur Performance und zum Einsatzbereich

  • Die Prüfung der Quota-Grenzen bei Schreibzugriffen verursacht messbaren Overhead
  • I/O-kritische Anwendungen können auf Partitionen ohne Quota gelegt werden
  • Auf Multiuser-Systemen mit hohem Datenaufkommen bleibt die Nutzung von Quota auf / trotz externer Dateien ein pragmatischer Ansatz, insbesondere wenn Verwaltungswerkzeuge explizit aquota.* erwarten


Anhang

Siehe auch


Dokumentation

Links

Projekt

Weblinks

  1. https://www.linuxhaven.de/dlhp/HOWTO/mini/DE-Quota-HOWTO.html
  2. https://www.debian.org/doc/manuals/securing-debian-manual/ch04s17.de.html
  3. https://debian-handbook.info/browse/de-DE/stable/sect.quotas.html