|
|
| (17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| '''Quota''' - Begrenzungen des Speicherplatzes auf Datenträgern für Benutzer oder Benutzergruppen (Disc-Quota) | | '''Quota''' - Begrenzungen des Speicherplatzes auf Datenträgern für Benutzer oder Benutzergruppen (Disc-Quota) |
|
| |
|
| == Beschreibung == | | === Beschreibung === |
| Quota ermöglicht die gezielte Begrenzung des belegbaren Festplattenspeichers auf einem System. | | Quota ermöglicht die gezielte Begrenzung des belegbaren Festplattenspeichers auf einem System. |
|
| |
|
| Zeile 22: |
Zeile 22: |
| * Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen | | * 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 | | * Daher sollte man Quota nur auf Partitionen aktivieren, auf denen Benutzer ihre Daten ablegen |
|
| |
| === Was sind Quota? ===
| |
| 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
| |
| Quota werden zurzeit für jede Partition ''separat'' ü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
| |
|
| |
|
| === Einsatzgebiete === | | === Einsatzgebiete === |
| Zeile 46: |
Zeile 34: |
|
| |
|
| === Arten von Quota === | | === Arten von Quota === |
| In diesem Dokument werden die Begriffe ''Softlimit'', ''Hardlimit'' und ''Grace Period'' in englischer Schreibweise verwendet. Wird im Text von Softlimit oder Hardlimit ohne Zusatz gesprochen, sind jeweils beide Arten von Limits (Block- und Inode-Limits) gemeint.
| | |
|
| |
|
| {| class="wikitable options big" | | {| class="wikitable options big" |
| ! Art | | ! Art |
| ! Ebene
| |
| ! Zweck | | ! Zweck |
| ! Besonderheit | | ! Beschreibung |
| |- | | |- |
| | ''Benutzerquota'' | | | Benutzerquota |
| | Benutzer
| |
| | Überwacht den von einzelnen Benutzern belegten Speicherplatz (Blöcke und Inodes). | | | Überwacht den von einzelnen Benutzern belegten Speicherplatz (Blöcke und Inodes). |
| | Limits pro Benutzer. | | | Limits pro Benutzer. |
| |- | | |- |
| | ''Gruppenquota'' | | | Gruppenquota |
| | Gruppe
| |
| | Überwacht den von Benutzergruppen belegten Speicherplatz (Blöcke und Inodes). | | | Überwacht den von Benutzergruppen belegten Speicherplatz (Blöcke und Inodes). |
| | Limits pro Gruppe. | | | Limits pro Gruppe. |
| |- | | |- |
| | Kombination Benutzer-/Gruppenquota | | | Kombination Benutzer-/Gruppenquota |
| | Benutzer und Gruppe
| |
| | Kombination aus Benutzer- und Gruppenquota auf derselben Partition. | | | Kombination aus Benutzer- und Gruppenquota auf derselben Partition. |
| | Benutzerquota hat höhere Priorität als Gruppenquota. | | | Benutzerquota hat höhere Priorität als Gruppenquota. |
| |} | | |} |
|
| |
|
| ==== Softlimit ==== | | {| class="wikitable options big" |
| Ein Softlimit definiert einen Wert, der kurzfristig überschritten werden darf. Die zulässige Dauer der Überschreitung wird durch die ''Grace Period'' bestimmt. | | ! Limit-Typ |
| | | ! Beschreibung |
| ==== Hardlimit ====
| | |- |
| Ein Hardlimit definiert einen Wert, der nie überschritten werden darf. Sobald das Hardlimit erreicht ist, werden weitere Schreiboperationen auf dem betroffenen Dateisystem abgelehnt. | | | Softlimit |
| | | | Ein Softlimit definiert einen Wert, der kurzfristig überschritten werden darf. Die zulässige Dauer der Überschreitung wird durch die ''Grace Period'' bestimmt. |
| ==== 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. | | | 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. |
| | |} |
|
| |
|
|
| |
|
| |
| ; Zuteilung des Plattenplatzes: quot
| |
| Quota dienen dazu, jedem Anwender und jeder Gruppe einen bestimmten Plattenspeicher zuzuteilen, der nicht überschritten werden darf
| |
| * So kann man verhindern, dass eine Aushilfekraft Musikdateien aus dem Internet sammelt und die Finanzbuchhaltung zum Absturz bringt, weil für sie kein Platz mehr auf der Platte ist
| |
| * Unabhängig von solchen Szenarien gibt es bei gesetzten Quota den psychologischen Effekt, dass die Benutzer merken, dass Plattenspeicher endlich ist
| |
| * In den meisten Fällen werden sie einmal ihre Daten durchsortieren und überholte Daten löschen, bevor sie beim Administrator um weiteren Speicher bitten
| |
| * Das wiederum entlastet auch die Datensicherung
| |
|
| |
|
| Mit drei Parametern wird eine Quotagrenze bestimmt: Softlimit, Hardlimit und Gnadenfrist (grace period) | | Mit drei Parametern wird eine Quotagrenze bestimmt: Softlimit, Hardlimit und Gnadenfrist (grace period) |
| Zeile 93: |
Zeile 74: |
| * Alle drei Parameter gibt es zweimal, jeweils für die Anzahl der Blöcke und die Anzahl der Dateien.Genauer: die Anzahl der i-nodes | | * Alle drei Parameter gibt es zweimal, jeweils für die Anzahl der Blöcke und die Anzahl der Dateien.Genauer: die Anzahl der i-nodes |
|
| |
|
| Zur Installation muss der Kernel die Fähigkeit haben, mit Quota umzugehen
| | == Einbeziehung von Quoten == |
| * Das kann ggf
| |
| * ein Neubilden des Kernels erforderlich machen
| |
|
| |
|
| In der Datei /etc/fstab wird hinterlegt, welche Dateisysteme durch Quota überwacht werden
| | === Quota-Implementierungen === |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| | |
| /dev/hda3/mount/hda3 ext2defaults,usrquota 1 1
| | Es gibt mehrere Möglichkeiten, Quoten unter Linux zu aktivieren. Siehe [[Quota/Realisierungen|Hauptartikel]] |
| </syntaxhighlight>
| |
|
| |
|
| In das Wurzelverzeichnis des Dateisystems müssen zwei Dateien gelegt werden
| | === Quota-Einstellung mit externen Dateien auf ext4-Root-Dateisystem === |
| * Im folgenden Beispiel ist das Wurzelverzeichnis /mount/hda3
| |
| * Die Dateien heißen quota.user und quota.group
| |
| * Letztere muss auch dann angelegt werden, wenn, wie in diesem Beispiel, gar keine Groupquota angelegt werden
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| touch /mount/hda3/quota.user
| |
| touch /mount/hda3/quota.group
| |
| chmod 600 /mount/hda3/quota.user
| |
| chmod 600 /mount/hda3/quota.group
| |
| mount /dev/hda3 /mount/hda3 -o remount
| |
| </syntaxhighlight>
| |
|
| |
|
| Der Befehl touch legt eine leere Datei an, wenn noch keine Datei vorhanden ist
| | ==== Voraussetzungen ==== |
| * Anschließend werden die Rechte der Dateien auf 600 gesetzt | | * Kernel mit Quota-Unterstützung (Module ''quota_v1''/''quota_v2'') |
| * Das ist zwingend, damit nur root diese Dateien lesen und schreiben kann | | * Paket ''quota'' installiert |
| * Ansonsten arbeitet das Quota-System nicht | | * Root-Dateisystem '''/''' auf ext4 (Beispiel: ''/dev/sda1'') |
| * Zum Schluss wird ein Wiedereinhängen des Dateisystems gestartet, damit der Eintrag in der fstab gelesen wird
| |
|
| |
|
| Nun wird ermittelt, welche Benutzer wie viel Platz auf der Platte belegt haben
| | ==== /etc/fstab für Quota mit externen Dateien auf / ==== |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| quotacheck -avug /dev/hda3
| |
| </syntaxhighlight>
| |
|
| |
|
| Dieser Vorgang dauert eine Weile
| | 1. In ''/etc/fstab'' wird festgelegt, dass auf ''/'' Quotas über externe Dateien verwendet werden: |
| * Die quota.user wird mit Daten gefüllt
| |
|
| |
|
| Anschließend kann man die Limits für die Benutzer einstellen
| | <syntaxhighlight lang="bash" highlight="" line copy> |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | /dev/sda1 / ext4 defaults,usrquota,grpquota 0 1 |
| edquota -u arnold
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| edquota startet den Standardeditor (meist vi) mit folgenden Einträgen:
| | * Gerätebezeichnung, Dateisystemtyp und zusätzliche Mount-Optionen sind an das lokale System anzupassen. |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | * Für journalisierte externe Quotas kann alternativ |
| Quotas for user arnold:
| | <syntaxhighlight lang="bash" highlight="" line copy> |
| /dev/hda3: blocks in use: 8117, limits (soft=0, hard=0)
| | usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1 |
| inodes in use: 470, limits (soft=0, hard=0)
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| Durch eine Änderung der Werte in den Klammern werden das Soft- und das Hardlimit des Benutzers für die jeweilige Platte eingestellt
| | 2. Anschließend wird das Root-Dateisystem mit den neuen Optionen neu eingehängt: |
| | |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| edquota -t zur Einstellung der Gnadenfrist betrifft alle Benutzer gemeinsam:
| | mount -o remount / |
| Time units may be: days, hours, minutes, or seconds
| |
| Grace period before enforcing soft limits for users:
| |
| /dev/hda3: block grace period: 7 day, file grace period: 7 days
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| Mit quotaon -a wird die Überwachung für alle gestartet, mit quotaoff -a wird sie wieder abgeschaltet
| | 3. Überprüfen, ob die Optionen aktiv sind: |
| * Soll die Überwachung auch nach einem Reboot erfolgen, muss der Befehl in einer rc-Datei eingetragen werden
| |
|
| |
|
| Ist das Quotasystem aktiv, erhält der Benutzer bei Überschreitung seines Limits eine Meldung am Bildschirm, und der Vorgang wird abgebrochen
| | <syntaxhighlight lang="bash" highlight="1" line copy> |
| | cat /proc/mounts | grep " / " |
| | </syntaxhighlight> |
|
| |
|
| Die ständige Überprüfung aller Dateizugriffe darauf, ob eine Grenze überschritten wird, ist natürlich nicht kostenlos
| | In der Ausgabe sollten ''usrquota'' und ''grpquota'' enthalten sein. |
| * Quota belasten die Performance der Dateizugriffe
| |
| * Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen
| |
| * Man braucht nur dafür zu sorgen, dass die betriebswichtigen Anwendungen ihre Daten auf einer eigenen Partition ablegen
| |
| * Administrieren Sie eine Maschine mit vielen Benutzern, die sich als Sammler und Jäger im Internet betätigen und neben Bildern, mp3-Dateien nun auch digitale Filme entdecken, führt an der Einrichtung von Quota langfristig kein Weg vorbei
| |
|
| |
|
| === Wie funktioniert Quota? === | | ==== Externe Quota-Dateien auf / anlegen ==== |
| 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
| |
|
| |
|
| Im Folgenden werden einige Begriffe erklärt, die man verstehen sollte, wenn man Quota verwenden will
| | Aktuelle Quota-Werkzeuge verwenden für externe Dateien üblicherweise die Namen ''aquota.user'' und ''aquota.group'' im Wurzelverzeichnis. |
|
| |
|
| ==== Number of Disk Blocks und Number of Inodes ====
| | Veraltete oder beschädigte Quota-Dateien in `/` sollten gelöscht werden: |
| 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
| |
|
| |
|
| ==== Under Quota ==== | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| "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 | | rm -f /quota.user /quota.group /aquota.user /aquota.group |
| | </syntaxhighlight> |
|
| |
|
| ==== Limits ====
| | Anschließend werden die Dateien für Benutzer- und Gruppenquotas auf dem Root-Dateisystem neu erzeugt: |
| ; Hinweis
| |
| 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
| |
|
| |
|
| ===== Hard Limit ===== | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| "Hard Limit" gibt den maximal zur Verfügung gestellten Speicherplatz oder die maximale Dateianzahl an | | quotacheck -cugm / |
| * Der Benutzer kann dieses Limit nie überschreiten
| | </syntaxhighlight> |
| * 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
| |
|
| |
|
| ; Hinweis
| | * ''-c'': Quota-Dateien neu anlegen |
| : 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 | | * ''-u'', ''-g'': Benutzer- und Gruppenquotas |
| :* 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
| | * ''-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.* |
| ==== Grace Period ====
| |
| 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
| |
| | |
| 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
| |
| | |
| ; Grafik
| |
| Hier eine kleine Grafik, um die ganze Sache an einem Beispiel grafisch zu erläutern
| |
| * quota_grafika.png
| |
| | |
| 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
| |
| | |
| == Installation ==
| |
| [[Quota/Installation]]
| |
| | |
| == Anwendung ==
| |
| [[Quota/Anwendung]]
| |
| | |
| == Konfiguration ==
| |
| Aktivieren Sie Quoten für das gewünschte Dateisystem in <tt>/etc/fstab</tt>, indem Sie <tt>usrquota</tt> oder <tt>grpquota</tt> zu den Mount-Optionen hinzufügen
| |
| * Um etwa Benutzerquoten für die Root-Partition zu aktivieren, suchen Sie die Zeile für <tt>/</tt> und fügen Sie <tt>usrquota</tt> zu den Optionen hinzu
| |
| | |
| ; Wichtig
| |
| : Sie müssen das Dateisystem neu mounten, damit die Änderungen wirksam werden, oder das System neu starten
| |
| | |
| <syntaxhighlight lang="bash" highlight="1" copy> | |
| sudo mount -o remount,usrquota /
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| === Vorbereitungen === | | ==== Quota-Überwachung auf / aktivieren ==== |
| ; System auf Quota vorbereiten
| |
| | |
| ==== Kernelkonfiguration ====
| |
| Bei der Kernelkonfiguration muss man auf die Frage mit ''y'' antworten
| |
| | |
| ==== Kompilieren und Installieren der Quota Software ====
| |
| Den Source von der Quota Software findet man unter <code>[./Ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/ ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/]</code>Eventuell ist es günstiger, die Software von einem Mirror zu laden, da obengenannter Server die meiste Zeit überlastet ist
| |
| | |
| ==== Anpassen der /etc/fstab ====
| |
| Auf einem System, auf dem Quota noch nie zum Einsatz kam, sieht die <code>/etc/fstab</code> normalerweise so aus: Falls man ''Benutzerquota'' einsetzen möchte, muss man die Option ''usrquota'' einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen: Falls man ''Gruppenquota'' einsetzen möchte, muss man die Option ''grpquota'' einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen: Falls beide obengenannten Optionen benötigt werden:
| |
| | |
| ==== Erstellen der Dateien quota.user und quota.group ====
| |
| 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: 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
| |
| | |
| ==== Nachträglich eine Partition einbinden ====
| |
| 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
| |
| | |
| ==== Änderungen wirksam machen ====
| |
| 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: Im Falle des Wurzelverzeichnisses ist dies sogar die einzige Möglichkeit, da wir <code>/</code> nicht einfach im laufenden Betrieb unmounten können
| |
| | |
| 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
| |
| | |
| === 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 | | Nach der Initialisierung wird die Quota-Überwachung eingeschaltet: |
| * Hier müssen nun die Dateisysteme gekennzeichnet werden, auf welchen Orte eingeschränkt werden sollen, damit Quota weiß, was kontrolliert werden soll
| |
|
| |
|
| Hier eine Passage einer /etc/fstab, in welcher die /home-Partition gemountet wird
| |
|
| |
| Dort liegt der Ordner ./Jan, welcher beispielshalber eingeschränkt wird
| |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| # Entry for /dev/sda2 :
| | quotaon -vug / |
| UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime 0 2
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| Damit Quota auf ein Dateisystem aufmerksam wird, müssen nun dieser Zeile ein oder zwei Attribute zugefügt werden [2]:
| | * Mit ''quotaoff -vug /'' wird die Überwachung für ''/'' wieder deaktiviert. |
| * usrquota - Hiermit können Einschränkungen für einzelne Benutzer eingerichtet werden | | * Einige Distributionen stellen systemd-Units wie ''quota.service'' bereit, die bei Bedarf für die automatische Aktivierung beim Booten genutzt 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:
| | ;Hinweis |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | : Auf aktuellen ext4-Kernels erscheint bei ''quotacheck''/''quotaon'' häufig eine Meldung wie: |
| UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime,usrquota 0 2
| | <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> | | </syntaxhighlight> |
|
| |
|
| ; Hinweis
| | : 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. |
| : 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
| |
|
| |
|
| ; Nun muss das Dateisystem neu eingehängt werden
| | Ob Quotas tatsächlich erzwungen werden, ist mit Testbenutzern zu prüfen. |
| * 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
| |
|
| |
|
| ; Hinweis
| | ==== Limits und Gnadenfrist setzen ==== |
| : Für diese Prozedur muss für root ein Passwort gesetzt sein
| |
| : Automatisches Erstellen der Dateien aquota.user beziehungweise aquota.group
| |
|
| |
|
| === quotacheck ===
| | Limits für Benutzer ''daniel'' auf dem Root-Dateisystem setzen: |
| Damit Quota funktionieren kann, müssen 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
| |
|
| |
|
| Hierfür führt man als Root folgenden Befehl aus
| |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| sudo quotacheck OPTIONEN
| | edquota -u daniel |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| ==== Optionen ====
| | Der Editor zeigt typischerweise: |
| {| class="wikitable options big"
| |
| |-
| |
| ! Option !! Beschreibung
| |
| |-
| |
| | -a || für all, also für alle zu überwachenden Dateisysteme aus der /etc/fstab
| |
| |-
| |
| | -c || für create, also Schreiben der Dateien auf die Festplatte
| |
| |-
| |
| | -f || für force, also Erzwingen der Operation
| |
| |-
| |
| | -M || 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
| | <syntaxhighlight lang="console" highlight="" line copy> |
| | | Quotas for user daniel: |
| === Abschließend ===
| | /dev/sda1: blocks in use: 8117, limits (soft=0, hard=0) |
| Jetzt muss Quota neu gestartet werden:
| | inodes in use: 470, limits (soft=0, hard=0) |
| <syntaxhighlight lang="bash" highlight="1" line copy> | |
| sudo /etc/init.d/quota restart
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| Um den Zugriff auf die Quota-Einträge für Benutzer und Gruppen nur dem root-Nutzer zu erlauben, ist Folgendes auszuführen:
| | Durch Anpassen der Soft- und Hardlimits für Blöcke und Inodes werden die Grenzen für ''/dev/sda1'' gesetzt. |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| sudo chmod 600 /quota.*
| |
| </syntaxhighlight>
| |
| | |
| Die korrekte Funktionalität kann nun getestet werden
| |
| * Folgender Befehl gibt eine Ansicht der Quota-Informationstabelle für Benutzer und Gruppen aus:
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| sudo repquota /
| |
| </syntaxhighlight>
| |
|
| |
|
| Hierbei bitte beachten, dass noch keine Quotas gesetzt sind
| | Die Gnadenfrist für Softlimits wird global definiert: |
|
| |
|
| === 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
| |
| ;Allgemein
| |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| sudo edquota -u <benutzername>
| | edquota -t |
| </syntaxhighlight>
| |
| ; Beispiel
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| sudo edquota -u otto
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| öffnet einen Editor, um die Quota für den Benutzer otto und alle Partitionen, für die Quota aktiviert wurde, zu editieren:
| | Ausgang: |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| Disk quotas for user otto (uid 1001):
| |
| Filesystem blocks soft hard inodes soft hard
| |
| /dev/hda2 28 100000 102400 7 0 0
| |
| </syntaxhighlight>
| |
|
| |
|
| "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
| | <syntaxhighlight lang="console" highlight="" line> |
| | | Grace period before enforcing soft limits for users: |
| ; Eine Gruppe einschränken
| | /dev/sda1: block grace period: 7 days, file grace period: 7 days |
| <syntaxhighlight lang="bash" highlight="1" line copy> | |
| sudo edquota -g <gruppenname>
| |
| </syntaxhighlight>
| |
| ; Beispiel
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| 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 | |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| editiert man die Einstellungen für eine Gruppe
| | ==== Überprüfung ==== |
| | | Überprüfung der aktuellen Kontingente und der Nachfrist für den Benutzer daniel: |
| ==== 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]
| |
| <syntaxhighlight lang="bash" highlight="1" line copy> | | <syntaxhighlight lang="bash" highlight="1" line copy> |
| sudo edquota -p otto `awk -F: '$3 > 1000 {print $1}' /etc/passwd`
| | quota daniel |
| </syntaxhighlight> | | </syntaxhighlight> |
| 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)
| | ==== Hinweise zur Performance und zum Einsatzbereich ==== |
|
| |
|
| ==== Grace Period setzen ====
| | * Die Prüfung der Quotas bei Schreibzugriffen verursacht messbaren Overhead. |
| Die Grace Period kann man mittels | | * I/O-kritische Anwendungen können auf Partitionen ohne Quota gelegt werden. |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| | * Auf Multiuser-Systemen mit hohem Datenaufkommen bleibt die Nutzung von Quotas auf ''/'' trotz externer Dateien ein pragmatischer Ansatz, insbesondere wenn Verwaltungswerkzeuge explizit ''aquota.*'' erwarten. |
| 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
| |
| </syntaxhighlight>
| |
| setzen
| |
|
| |
|
| Hierfür können die Zeiteinheiten sec(onds), min(utes), hour(s), day(s), week(s) und month(s) verwendet werden
| |
| [[Kategorie:Linux/Sicherheit]]
| |
|
| |
| === Dateien ===
| |
| {| class="wikitable options big"
| |
| |-
| |
| ! Datei !! Beschreibung
| |
| |-
| |
| | [[/etc/fstab]] || Quota beim Systemstart aktivieren
| |
| |-
| |
| | ||
| |
| |}
| |
|
| |
|
| == Anhang == | | == Anhang == |
| Zeile 445: |
Zeile 231: |
| # https://debian-handbook.info/browse/de-DE/stable/sect.quotas.html | | # https://debian-handbook.info/browse/de-DE/stable/sect.quotas.html |
|
| |
|
| [[Kategorie:Dateisystem]] | | [[Kategorie:Quota]] |
|
| |
|
| </noinclude> | | </noinclude> |
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 Quotas versehen werden.
- Quotas 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 Limits zusätzliche Aktionen ausgelöst werden, z. B. Benachrichtigung per E-Mail.
- Quota wirkt 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 von Quotas auf Dateisystemen.
Der Einsatz von Quota dient dazu, übermäßige Belegung von Festplattenspeicher zu verhindern.
- Hinweis
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
Einsatzgebiete
Viele Computerbesitzer wissen gar nicht, wie stark sie durch Quota eingeschränkt werden
- Ein anschauliches Beispiel sind die Internetprovider
- 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, beispielsweise
- wie groß das E-Mail-Verzeichnis der Kunden sein darf
- Quota kommt vorwiegend bei Servern zum Einsatz
- Denn nur dadurch lässt sich vermeiden, dass Benutzer zu viel auf dem Server ablegen und dadurch die Festplatte füllen
Arten von Quota
| 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.
|
| 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.
|
Mit drei Parametern wird eine Quotagrenze bestimmt: Softlimit, Hardlimit und Gnadenfrist (grace period)
- Das Softlimit darf zwar überschritten werden, aber nur für eine gewisse Zeit, die als Gnadenfrist bezeichnet wird
- Das Hardlimit ist die Grenze, die der Benutzer nicht überschreiten darf
- Alle drei Parameter gibt es zweimal, jeweils für die Anzahl der Blöcke und die Anzahl der Dateien.Genauer: die Anzahl der i-nodes
Einbeziehung von Quoten
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:
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:
- -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:
Quota-Überwachung auf / aktivieren
Nach der Initialisierung wird die Quota-Überwachung eingeschaltet:
- 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:
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:
Ausgang:
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 Nachfrist für den Benutzer daniel:
Hinweise zur Performance und zum Einsatzbereich
- Die Prüfung der Quotas 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 Quotas auf / trotz externer Dateien ein pragmatischer Ansatz, insbesondere wenn Verwaltungswerkzeuge explizit aquota.* erwarten.
Anhang
Siehe auch
Dokumentation
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