Zum Inhalt springen

Quota: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(143 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 ===
== Installation ==
Quota ermöglicht die gezielte Begrenzung des belegbaren Festplattenspeichers auf einem System.
== Syntax ==
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===


== Konfiguration ==
* Alle in [[/etc/fstab]] eingetragenen, beschreibbaren Partitionen auf gängigen Linux-Dateisystemen können mit Quota-Grenzen versehen werden
=== Dateien ===
* 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


== Anwendungen ==
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:
== Sicherheit ==
 
== Dokumentation ==
* ''edquota'': Bearbeiten der Quota-Einträge von Benutzern und Gruppen
=== RFC ===
* ''quotacheck'': Prüfen der Belegung und Erzeugen bzw. Aktualisieren der Quota-Dateien
=== Man-Pages ===
* ''quotaon''/''quotaoff'': Aktivieren bzw. Deaktivieren der Quota-Überwachung auf Dateisystemen
=== Info-Pages ===
 
=== Siehe auch ===
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-Server|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:
 
{| class="wikitable options big"
! 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.
|}


== Links ==
* Quota-Grenzen legen die zulässige Nutzung fest:
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />


== Testfragen ==
{| class="wikitable options big"
<div class="toccolours mw-collapsible mw-collapsed">
! Limit-Typ
''Testfrage 1''
! Beschreibung
<div class="mw-collapsible-content">'''Antwort1'''</div>
|-
</div>
| Softlimit
<div class="toccolours mw-collapsible mw-collapsed">
| Ein Softlimit definiert einen Wert, der kurzfristig überschritten werden darf. Die zulässige Dauer der Überschreitung wird durch die ''Grace Period'' bestimmt.
''Testfrage 2''
|-
<div class="mw-collapsible-content">'''Antwort2'''</div>
| Hardlimit
</div>
| Ein Hardlimit definiert einen Wert, der nie überschritten werden darf. Sobald das Hardlimit erreicht ist, werden weitere Schreiboperationen auf dem betroffenen Dateisystem abgelehnt.
<div class="toccolours mw-collapsible mw-collapsed">
|-
''Testfrage 3''
| Grace Period
<div class="mw-collapsible-content">'''Antwort3'''</div>
| 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.
</div>
|}
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


= TMP =
== Einbindung von Quota ==


== 2. Allgemeines über Quota ==
=== Quota-Implementierungen ===


== 2.1 Was sind Quota? ==
Es gibt mehrere Möglichkeiten, Quoten unter Linux zu aktivieren. Siehe [[Quota/Realisierungen|Hauptartikel]]
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.


== 2.2 Wichtige Hinweise ==
=== Quota-Einstellung mit externen Dateien auf ext4-Root-Dateisystem ===
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.


== 2.3 Wo kommen Quota zum Einsatz? ==
==== Voraussetzungen ====
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.
* Kernel mit Quota-Unterstützung (Module ''quota_v1''/''quota_v2'')
* Paket ''quota'' installiert
* Root-Dateisystem '''/''' auf ext4 (Beispiel: ''/dev/sda1'')


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.
==== /etc/fstab für Quota mit externen Dateien auf / ====


== 2.4 Aktueller Status von Quota ==
1.&nbsp;In ''/etc/fstab'' wird festgelegt, dass auf ''/'' Quotas über externe Dateien verwendet werden:
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.
<syntaxhighlight lang="bash" highlight="" line copy>
/dev/sda1  /  ext4  defaults,usrquota,grpquota  0  1
</syntaxhighlight>


== 2.5 Minimale Systemanforderungen ==
* Gerätebezeichnung, Dateisystemtyp und zusätzliche Mount-Optionen sind an das lokale System anzupassen.
* Für journalisierte externe Quotas kann alternativ


=== Kernel ===
<syntaxhighlight lang="bash" highlight="" line copy>
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.
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1
</syntaxhighlight>


=== Quota Software ===
2.&nbsp;Anschließend wird das Root-Dateisystem mit den neuen Optionen neu eingehängt:
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.


== 3. Welche Arten von Quota gibt es? ==
<syntaxhighlight lang="bash" highlight="1" line copy>
In dem gesamten Dokument werde ich die Begriffe ''Softlimit'' (siehe Softlimit), ''Hardlimit'' (siehe Hardlimit) und ''Grace Period'' (siehe Grace Period) in ihrer englischen Form belassen, da es meines Erachtens keine sinvolle Übersetzung dafür gibt. Wenn im Text die Rede von Softlimit oder Hardlimit ohne Zusatz ist, sind jeweils ''beide'' Arten, Block- und Inoden-Limiten gemeint.
mount -o remount /
</syntaxhighlight>


== 3.1 Quota auf Benutzerebene ==
3.&nbsp;Überprüfen, ob die Optionen aktiv sind:
Bei Quota auf Benutzerebene wird der Speicherplatz der einzelnen Benutzer überwacht. Mit dieser Methode kann man den Speicherplatz, den ein Benutzer füllen darf, begrenzen.


Im weiteren Verlauf dieses Dokuments wird diese Form der Quota als ''Benutzerquota'' bezeichnet werden.
<syntaxhighlight lang="bash" highlight="1" line copy>
cat /proc/mounts | grep " / "
</syntaxhighlight>


== 3.2 Quota auf Gruppenebene ==
In der Ausgabe sollten ''usrquota'' und ''grpquota'' enthalten sein.
Bei Quota auf Gruppenebene wird der Speicherplatz der einzelnen Gruppen überwacht. Mit dieser Methode kann man den Speicherplatz, den eine Gruppe füllen darf, begrenzen.


Im weiteren Verlauf dieses Dokuments wird diese Form der Quota als ''Gruppenquota'' bezeichnet werden.
==== Externe Quota-Dateien auf / anlegen ====


== 3.3 Kombination von Quota auf Benutzerebene/Gruppenebene ==
Aktuelle Quota-Werkzeuge verwenden für externe Dateien üblicherweise die Namen ''aquota.user'' und ''aquota.group'' im Wurzelverzeichnis.
Falls auf einer Partition Quota auf Benutzer- ''und'' Gruppenebene zum Einsatz kommen, haben Quota auf Benutzerebene eine ''höhere Priorität''. Wenn z.B. eine Gruppe ein Limit von 5 MBytes hat, und eine Angehöriger dieser Gruppe hat ein Limit von 20 MBytes, so darf dieser maximal 20 MBytes füllen, auch wenn seine Gruppe nur 5 MBytes dürfte.


Im weiteren Verlauf dieses Dokuments wird diese Form der Quota als ''Benutzer- und Gruppenquota'' bezeichnet werden.
Veraltete oder beschädigte Quota-Dateien in `/` sollten gelöscht werden:


== 3.4 Softlimit ==
<syntaxhighlight lang="bash" highlight="1" line copy>
Ein Benutzer darf sein ''Softlimit'' für eine kurze Zeit überschreiten. Aber eben nur eine kurze Zeit. Dieser Zeitraum, in dem er das Softlimit überschreiten darf, ist durch die ''Grace Period'' festgelegt.
rm -f /quota.user /quota.group /aquota.user /aquota.group
</syntaxhighlight>


== 3.5 Hardlimit ==
Anschließend werden die Dateien für Benutzer- und Gruppenquotas auf dem Root-Dateisystem neu erzeugt:
Ein Benutzer kann sein ''Hardlimit'' ''nicht'' überschreiten. Es gibt ''keine'' Möglichkeit für den Benutzer, diese Limite zu umgehen.


== 3.6 Grace Period ==
<syntaxhighlight lang="bash" highlight="1" line copy>
Die ''Grace Period'' ist ein Zeitraum. Sobald ein Benutzer sein Softlimit überschreitet, beginnt die Grace Period zu ticken. Wenn sie ersteinmal heruntergezählt ist, darf der betreffende Benutzer vorerst ''keine'' Daten mehr auf die Partition, auf der er das Softlimit überschritten hat, schreiben. Er darf erst wieder schreiben, wenn er sein Softlimit wieder unterschreitet.
quotacheck -cugm /
</syntaxhighlight>


== 4. Das System auf Quota vorbereiten ==
* ''-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 ''/''


== 4.1 Kernelkonfiguration ==
Die erzeugten Dateien sollten als ''root:root'' mit Modus ''600'' existieren:
Bei der Kernelkonfiguration muss man auf die Frage<blockquote> </blockquote>mit »y« antworten.


== 4.2 Kompilieren und Installieren der Quota Software ==
<syntaxhighlight lang="bash" highlight="1" line copy>
Den Source von der Quota Software findet man unter<blockquote> <code>[./Ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/ ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/]</code></blockquote>Eventuell ist es günstiger, die Software von einem Mirror zu laden, da obengenannter Server die meiste Zeit überlastet ist.
ls -l /aquota.*
</syntaxhighlight>


== 4.3 Anpassen der /etc/fstab        ==
==== Quota-Überwachung auf / aktivieren ====
Auf einem System, auf dem Quota noch nie zum Einsatz kam, sieht die <code>/etc/fstab</code> normalerweise so aus:<blockquote> </blockquote>Falls man ''Benutzerquota'' einsetzen möchte, muss man die Option »usrquota« einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen:<blockquote> </blockquote>Falls man ''Gruppenquota'' einsetzen möchte, muss man die Option »grpquota« einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen:<blockquote> </blockquote>Falls beide obengenannten Optionen benötigt werden:<blockquote> </blockquote>


== 4.4 Erstellen der Dateien quota.user und quota.group ==
Nach der Initialisierung wird die Quota-Überwachung eingeschaltet:
Auf den vorhergehenden Seiten wurde erwähnt, das es ''Benutzerquota'' und ''Gruppenquota'' gebe und das die Quota für jede Partition einzeln überwacht werde. Aus diesen Gründen muss man für jede zu überwachende Partition zwei Dateien erstellen. Auch wenn nur Benutzerquota oder Gruppenquota zum Einsatz kommen, muss man zwei Dateien haben.


Diese zwei Dateien müssen im Wurzelverzeichnis der Partition sein und <code>quota.user</code> und <code>quota.group</code> heissen. Am besten setzt man die Zugriffsrechte so, das nur root die Datei lesen und schreiben darf, ansonsten könnten andere Benutzer die Quota ändern. Die Dateien erstellt man so:<blockquote> </blockquote>In dem Beispiel wird davon ausgegangen, dass die zu überwachende Partition unter <code>/partition</code> gemountet ist. Das man diese Operation als root durchführen muss, muss wohl nicht speziell erwähnt werden.
<syntaxhighlight lang="bash" highlight="1" line copy>
quotaon -vug /
</syntaxhighlight>


== 4.5 Nachträglich eine Partition einbinden ==
* Mit ''quotaoff -vug /'' wird die Überwachung für ''/'' wieder deaktiviert.
Falls man alle Quota schon gesetzt hat, und eine weitere Partition einbinden will, so müssen nur die Schritte in den Abschnitten Anpassen der /etc/fstab und Erstellen der Dateien quota.user und quota.group für die einzubindende Partition durchgeführt werden. Dann kann man die Quota wie im Abschnitt Setzen der Quota beschrieben anpassen.
* Einige Distributionen stellen systemd-Units wie ''quota.service'' bereit, die bei Bedarf für die automatische Aktivierung beim Booten genutzt werden.


== 4.6 Änderungen wirksam machen ==
;Hinweis
Nun könnte man einfach das System rebooten, um die Änderungen wirksam zu machen. Aber wir betreiben ja ein Linux System und da geht fast alles ohne neu zu booten. Um die Quotas nun tatsächlich zu aktivieren, genügt es, einfach die entsprechende Partition unzumounten und wieder zu mounten. Einfacher geht dies indem man <code>mount</code> mit der Option »-o remount« aufruft. Beispielweise:<blockquote> </blockquote>Im Falle des Wurzelverzeichnisses ist dies sogar die einzige Möglichkeit, da wir <code>/</code> nicht einfach im laufenden Betrieb unmounten können.
: 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>


Sollen in Zukunft weitere Dateisysteme mit Quotas versehen werden, müssen nur noch die Schritte, die in den Abschnitten Erstellen der Dateien quota.user und quota.group, Nachträglich eine Partition einbinden sowie Änderungen wirksam machen beschrieben werden, ausgeführt werden.
: 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.  


== 5. Setzen der Quota ==
Ob Quotas tatsächlich erzwungen werden, ist mit Testbenutzern zu prüfen.
Diese Operation wird mit dem Programm <code>edquota</code> durchgeführt. Falls man mehr über dieses Programm erfahren möchte, dem sei die Manual Page des Programms ans Herz gelegt.


== 5.1 Vorbereitung ==
==== Limits und Gnadenfrist setzen ====
Zuerst muss mit<blockquote> </blockquote>der Platzverbrauch der einzelnen Benutzer erfasst werden. Je nach Grösse der Partition(en) und dem belegten Speicherplatz kann dies unterschiedlich lange dauern.


== 5.2 Benutzerquota setzen ==
Limits für Benutzer ''daniel'' auf dem Root-Dateisystem setzen:
Angenommen, ich habe auf meinem System einen Benutzer mit dem Loginnamen »tom«. Wenn ich seine Quota setzen oder ändern möchte, rufe ich das Programm<blockquote> </blockquote>auf. Dann lande ich in dem Editor, der in der Variable <code>$EDITOR</code> spezifiziert ist. Normalerweise ist das <code>vi</code>. Das könnte dann zum Beispiel so aussehen:<blockquote> </blockquote>Hier nun jede Zeile einzeln erklärt:<blockquote> </blockquote>Hier steht der Name des Benutzers, dessen Quota man gerade bearbeitet.<blockquote> </blockquote>Hier steht die Partition, auf die sich die Angaben beziehen (in diesem Fall <code>/dev/hda9</code>) und wieviele Blöcke der Benutzer schon benutzt. In den Klammern kann man die Softlimite und die Hardlimite für die Anzahl Blöcke festlegen. Ein Wert von Null bedeutet unbegrenzt.<blockquote> </blockquote>Diese Zeile bezieht sich auf die gleiche Partition wie die vorhergehende. Hier kann der Systemadministrator ablesen, wieviele Inoden der Benutzer schon gebraucht hat. Eine Inode entspricht einer Datei. In den Klammern kann man hier die Softlimite und die Hardlimite für die Anzahl der Inoden festlegen. Auch hier bedeutet ein Wert von Null unbegrenzt.<blockquote> </blockquote>Diese beiden Zeilen haben die gleiche Bedeutung wie die beiden anderen, beziehen sich jedoch auf eine andere Partition: in diesem Fall <code>/dev/hda2</code>.


== 5.3 Gruppenquota setzen ==
<syntaxhighlight lang="bash" highlight="1" line copy>
Angenommen, ich möchte die Quota für ein bestimmte Gruppe setzen. Falls ich dies für die Gruppe »users« tun will, rufe ich<blockquote> </blockquote>auf. Dann erscheint wieder der Editor; das sieht dann zum Beispiel so aus:<blockquote> </blockquote>Die Optionen sind dieselben wie oben, deshalb werde ich nicht noch einmal daraufeingehen.
edquota -u daniel
</syntaxhighlight>


== 5.4 Quota für mehrere Benutzer vergeben ==
Der Editor zeigt typischerweise:
Hier ist eine Lösung, wie man mehreren Benutzer die gleiche Quota wie dem Benutzer »tom« geben kann. Dazu muss man aber die <code>csh</code> als Shell benutzen:<blockquote> </blockquote>Bei diesem Beispiel wird angenommen, das die UIDs von 500 an aufwärts vergeben worden sind. Falls dies nicht der Fall ist, muss man die Zahl »499« in dem Beispiel anpassen.


== 5.5 Die Grace Period setzen ==
<syntaxhighlight lang="console" highlight="" line copy>
Zu guter letzt kann man noch die Grace Period setzen. Dazu ruft man<blockquote> </blockquote>auf. Dann gelangt man wieder in seinen Lieblingseditor und kriegt folgendes zu sehen:<blockquote> </blockquote>Hier kann man die Grace Period einstellen. Auch hier muss man sie für jede Partition getrennt setzen. Hinter »block grace period« folgt die Zeitspanne für das Block-Limit, hinter »file grace period« die Zeitspanne für die Inoden-Limite. Mögliche Werte sind Tage (days), Stunden (hours), Minuten (minutes) und Sekunden (seconds). Ein guter Wert ist sieben Tage.
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>


== 6. Starten und beenden der Quotaüberwachung ==
Durch Anpassen der Soft- und Hardlimits für Blöcke und Inodes werden die Grenzen für ''/dev/sda1'' gesetzt.


== 6.1 Manuell ==
Die Gnadenfrist für Softlimits wird global definiert:
Zum Starten und Beenden der Quotaüberwachung werden die Programme <code>quotaon</code> und <code>quotaoff</code> benötigt.


Mit<blockquote> </blockquote>wird die Quotaüberwachung eingeschaltet, mit<blockquote> </blockquote>wird sie ausgeschaltet.
<syntaxhighlight lang="bash" highlight="1" line copy>
edquota -t
</syntaxhighlight>


== 6.2 Mit einem Skript ==
Ausgabe:
Am besten wäre es, wenn man die Quotaüberwachung schon beim Systemstart einschalten könnte. Dazu kann man sich folgenden Skriptes bedienen:<blockquote> </blockquote>Das Skript erwartet einen Parameter, nämlich »start« oder »stop«. Mit dem Paramter »start« wird die Quotaüberwachung gestartet, mit dem Parameter »stop« wird sie beendet.


Falls man das Skript von Hand starten möchte, kann man es in eine beliebiges Verzeichnis kopieren, und dann<blockquote> </blockquote>durchführen. <code>/pfad/skriptname</code> muss noch durch den wirklichen Skriptnamen und dessen Pfad ausgetauscht werden. Um es zu starten, wechselt man in das Verzeichnis, in dem sich das Skript befindet und gibt dann <code>./skriptname</code> ein. Auch hier muss <code>skriptname</code> noch ersetzt werden.
<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>


Falls man es als Init-Skript benutzen will, muss man das Skript zuerst nach <code>/etc/init.d</code> (bei SuSE-Linux: <code>/sbin/init.d</code>) kopieren. Am besten nennt man es <code>quota</code>. Dann führt man folgende Schritte durch:<blockquote> </blockquote>Ab jetzt wird die Quotaüberwachung bei jedem Systemstart aktiviert.
==== Überprüfung ====
Überprüfung der aktuellen Kontingente und der Gnadenfrist für den Benutzer daniel:


== 7. Verschiedene Kommandos ==
<syntaxhighlight lang="bash" highlight="1" line copy>
quota daniel
</syntaxhighlight>


== 7.1 Quota ==
==== Hinweise zur Performance und zum Einsatzbereich ====
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.


== 7.2 Quotacheck ==
* Die Prüfung der Quota-Grenzen bei Schreibzugriffen verursacht messbaren Overhead
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>.
* 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


== 7.3 Repquota ==
<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 ==
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
----
[[Kategorie:Entwurf]]
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
 
=== Dokumentation ===
<!--
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
 
; Info-Pages
-->
 
=== Links ===
==== Projekt ====
==== Weblinks ====
# https://www.linuxhaven.de/dlhp/HOWTO/mini/DE-Quota-HOWTO.html
# https://www.debian.org/doc/manuals/securing-debian-manual/ch04s17.de.html
# https://debian-handbook.info/browse/de-DE/stable/sect.quotas.html
 
[[Kategorie:Quota]]
 
</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