Festlegen von Dateisystemkontingenten unter Ubuntu
Zu den Dateisystemen, die das Quotensystem unterstützen, gehören xfs, ext2, ext4 und ext3, um nur einige zu nennen. Die Zuweisung von Kontingenten ist spezifisch für das Dateisystem und für jeden Benutzer. Dieser Artikel enthält alles, was Sie über die Arbeit mit dem Kontingentdateisystem in einem Mehrbenutzer wissen müssen Ubuntu 18.04 Umgebung.
Was du brauchst
Die Annahme hier ist, dass Sie verwenden Ubuntu 18.04 System mit einem Benutzer (tecmint) Sudo-Rechte gegeben. Die hier geteilten Ideen können auf allen Linux-Distributionen funktionieren, solange Sie die richtige Implementierungstechnik verwenden.
Schritt 1: Quota in Ubuntu installieren
Damit Kontingente bereit und verwendbar sind, installieren Sie das Kontingent-Befehlszeilentool mit dem Befehl apt. Zuvor müssen Sie jedoch die Systemsoftwarepakete aktualisieren.
$ sudo apt update
Verwenden Sie nun den folgenden Befehl zur Installation Quote Paket auf Ubuntu.
$ sudo apt install quota
Drücken Sie
Y
, und dann EINGEBEN Damit der Installationsvorgang beginnt.Bestätigen Sie die Installationsversion, indem Sie den folgenden Befehl ausführen. Ihre Versionsnummer kann von der unten gezeigten abweichen.
$ quota --version
Schritt 2: Installieren des Moduls für den Kontingentkern
Diejenigen, die ein Cloud-basiertes virtuelles System ausführen, die Standardeinstellung Ubuntu Bei der Installation fehlen möglicherweise die Kernelmodule, die die Verwendung des Kontingents unterstützen. Sie müssen mit dem Suchwerkzeug bestätigen und sicherstellen, dass die beiden Module, quota_v1, und teile _v2sind in der / lib / modules Verzeichnis.
$ find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'
Dies sollte das Ergebnis des obigen Befehls sein.
Machen Sie sich keine Sorgen um die Kernel-Versionen, solange die beiden Module vorhanden sind. Wenn nicht gefunden, verwenden Sie den folgenden Befehl, um Quota-Kernel-Module wie gezeigt zu installieren.
$ sudo apt install linux-image-extra-virtual
Sie erhalten die richtigen Module, die Sie für die Kontingentimplementierung benötigen.
Schritt 3: Aktualisieren der Dateisystem-Mount-Optionen
Damit die Kontingente auf einem bestimmten System aktiv sind, müssen sie mit zugehörigen Kontingentoptionen bereitgestellt werden. Sie können dies tun, indem Sie den Dateisystemeintrag im aktualisieren / etc / fstab Datei.
$ sudo nano /etc/fstab
Sie sollten bereit sein, die Datei entsprechend zu bearbeiten. Der Unterschied zwischen einer fstab-Datei und einer Desktop-Datei besteht darin, wie die /
oder Root-Dateisystem repräsentiert den gesamten Speicherplatz. Ersetzen Sie die Leitung (/)
das zeigt auf das Wurzelsystem mit den folgenden Zeilen.
LABEL=cloudimg-rootfs / ext4 usrquota,grpquota 0 0
Die Zeilen ändern sich, um das zu ermöglichen Benutzerquote und grpquota zugänglich sein. Sie können eine belassen, die nicht Teil der endgültigen Konfiguration ist. Wenn die fstab einige Optionen hatte, fügen Sie die neuen Optionen am Ende der Zeile hinzu. Trennen Sie beim Anhängen die neuen Elemente durch ein Komma, jedoch ohne Abstand zwischen ihnen.
Hängen Sie das Dateisystem erneut ein, damit die Änderungen wirksam werden.
$ sudo mount -o remount /
HINWEIS: Bestätigen Sie, dass zwischen den Optionen in der kein Leerzeichen vorhanden ist / etc / fstab um solche Fehler zu vermeiden.
mount: /etc/fstab: parse error
Die Überprüfung der Verwendung neuer Optionen beim Mounten des Dateisystems im / proc / mounts Datei ist fertig durch grep. Der Befehl zeigt den Eintrag des Root-Dateisystems in der Datei an.
$ sudo cat /proc/mounts | grep ' / '
In der Ausgabe sehen Sie die beiden Optionen, die wir eingerichtet haben. Es ist Zeit, das Quotensystem einzuschalten.
Schritt 4: Aktivieren von Festplattenkontingenten unter Ubuntu
Zuerst müssen Sie die ausführen Quotacheck Befehl.
$ sudo quotacheck -ugm /
Der Befehl erstellt zwei Dateien, einen Kontingentbenutzer und eine Kontingentgruppe, die Informationen zum Limit und zur Verwendung des Dateisystems enthalten. Diese Dateien müssen vorhanden sein, bevor Sie das Kontingent verwenden können.
Hier ist eine Definition der Parameter:
-
-u
: symbolisiert, dass eine benutzerbasierte Kontingentdatei erstellt wird. -
-g
: Gibt an, dass eine gruppenbasierte Kontingentdatei erstellt wird. -
-m: disables remounting of the file system as a read-only while at the same time gives accurate results in an environment where the user keeps saving files. The m
Die Option ist während des Setups nicht obligatorisch.
Wenn die Verwendung von Kontingenten basierend auf Benutzer oder Gruppe nicht aktiviert werden muss, muss das nicht ausgeführt werden Quotacheck Möglichkeit. Bestätigen Sie dies, indem Sie das Stammverzeichnis mit dem Befehl ls auflisten.
$ ls /
Beispielausgabe
aquota.group bin dev home initrd.img.old lib64 media opt root sbin srv tmp var vmlinuz.old aquota.user boot etc initrd.img lib lost+found mnt proc run snap sys usr vmlinuz
Nichteinbeziehung der u
und g
Parameter in der Befehl quotacheckfehlen die entsprechenden Dateien.
Jetzt können wir das Kontingent im Stammverzeichnis aktivieren (/)
Dateisystem mit dem folgenden Befehl.
$ sudo quotaon -v /
Schritt 5: Konfigurieren Sie Kontingente für einen einzelnen Benutzer
Wir können die verwenden Edquota und setquota Befehle, um sie für Benutzer oder Gruppen festzulegen.
Edquota verwenden
Das edquota-Befehle Bearbeiten von Kontingenten Zum Beispiel können wir ein dazugehöriges Kontingent bearbeiten tecmint Benutzer mit:
$ sudo edquota -u tecmint
Verwendung der -u
Option gibt an, dass das Kontingent einem Benutzer gehört. Verwenden Sie die -g
Option, wenn Sie ein Kontingent bearbeiten müssen, das zu einer Gruppe gehört. Der Befehl öffnet eine Datei mit einem Texteditor Ihrer Wahl.
Die Ausgabe listet den Benutzernamen, die UID, das Dateisystem mit aktiven Kontingenten und die Verwendung von Blöcken und Inodes auf. Ein auf Inodes basierendes Kontingent begrenzt die Anzahl der Dateien und Verzeichnisse, die Benutzer erstellen können, unabhängig von der Größe, die sie auf der Festplatte verwenden. Die meisten Admins bevorzugen die blockbasiert Kontingent, das den Speicherplatz steuert.
HINWEIS: Die Verwendung von Blöcken zeigt nicht, wie sie sich in Abhängigkeit von verschiedenen Faktoren ändern können, z. B. dem Befehlszeilentool, das sie meldet. Innerhalb der Kontextkontingente unter Ubuntu können wir davon ausgehen, dass ein einzelner Block einem Kilobyte Speicherplatz entspricht.
Über die obige Befehlszeile verwendet der Benutzer 2032-Blöcke, was 2032 KB Speicherplatz auf dem entspricht / dev / sda1. Das 0 value deaktiviert sowohl weiche als auch harte Grenzen.
Mit jedem festgelegten Kontingent können Sie das weiche und das harte Limit festlegen. Ein Benutzer, der das Soft-Limit überschreitet, kann sein Kontingent überschreiten, darf jedoch nicht mehr Leerzeichen oder Inodes verwenden. In einem solchen Fall hat der Benutzer sieben Tage Zeit, um seinen Soft-Limit-Speicherplatz einzulösen. Andernfalls ist es schwierig, Dateien zu speichern oder zu erstellen.
Ein hartes Limit bedeutet, dass die Erstellung neuer Blöcke oder Inodes in dem Moment stoppt, in dem Sie das Limit erreichen. Benutzer melden Warnungen oder Fehler, während sie reguläre Aufgaben ausführen.
Wir können das Blockkontingent von tecmint aktualisieren, um ein weiches Limit von zu haben 100 MB und 110 MB für die harte Grenze.
Schließen Sie nach dem Bearbeiten die Datei und überprüfen Sie die neuen Einstellungen für das Benutzerkontingentlimit mithilfe von Kontingentbefehl.
$ sudo quota -vs tecmint
HINWEIS: Geben Sie Ihren Benutzern die Möglichkeit, ihre Kontingente zu analysieren, ohne die Sudo-BefehlWährend der Erstellungsphase in Schritt 4 müssen sie Zugriff auf gelesene Kontingentdateien erhalten. Eine einfache Möglichkeit besteht darin, eine Benutzergruppe zu erstellen und der Gruppe Zugriff zu gewähren, damit Sie Benutzer hinzufügen können.
Setquota verwenden
setquota Aktualisiert die Kontingentinformationen mit einem einzigen Befehl ohne interaktive Einrichtung. Der Befehl erfordert den Benutzernamen und das Festlegen der weichen und harten Grenzen, die der Block und der Inode verwenden. Sie müssen auch das Dateisystem deklarieren, das das Kontingent verwendet.
$ sudo setquota -u tecmint 200M 220M 0 0 /
Der Befehl verdoppelt die blockbasierten Kontingentgrenzen auf 200 Megabyte und 220 Megabyte. Die Zwei 0 0
Geben Sie an, dass sowohl die harten als auch die weichen Grenzwerte nicht festgelegt sind. Dies ist auch dann erforderlich, wenn keine Inode-basierten Quoten festgelegt werden müssen.
Verwenden Sie wie gewohnt den Befehl quota, um Ihren Fortschritt zu überprüfen.
$ sudo quota -vs tecmint
Schritt 6: Kontingentberichte erstellen
Beim Erstellen eines Kontingentberichts muss die Verwendung durch alle Benutzer angegeben werden. Der Befehl repquota wird eingesetzt.
$ sudo repquota -s /
Die Ausgabe oben ist ein Bericht über die /
Root-Dateisystem. Das -s
weist an repquota Ergebnisse in einem für Menschen lesbaren Format zu liefern.
Die Standardblock-Kulanzzeit ist 7 Tage. Die Grace-Spalte benachrichtigt den Benutzer über die Anzahl der Tage vor der Verweigerung des Zugriffs auf die Ressourcenfestplatte.
Schritt 7: Legen Sie die Konfigurations-Grace-Perioden fest
Die Nachfrist ist die Zeit, zu der ein Benutzer die Berechtigung erhält, über das Standard-Timing hinaus zu arbeiten.
$ sudo setquota -t 864000 864000 /
Der Befehl weist den Block und den Inode an, eine Nachfrist von zu haben 864000 Sekunden ein Äquivalent von 10 Tage. Die Einstellung wirkt sich auf alle Benutzer aus. Daher müssen Werte festgelegt werden, auch wenn keine Blöcke und Inodes verwendet werden. Der Zeitwert muss in Sekunden angegeben werden.
Bestätigen Sie die Änderungen und prüfen Sie mit dem Befehl, ob sie wirksam wurden:
$ sudo repquota -s /
Häufige Fehlermeldungen
quotaon: cannot find //aquota.group on /dev/vda1 [/] quotaon: cannot find //aquota.user on /dev/vda1 [/]
Der obige Fehler tritt häufig auf, wenn Sie versuchen, Kontingente mit dem Befehl zu aktivieren Qoutaon vor dem Versuch, den Status eines Kontingents mit dem Befehl zu überprüfen Quotacheck.
quotaon: using //aquota.group on /dev/vda1 [/]: No such process quotaon: Quota format not supported in kernel. quotaon: using //aquota.user on /dev/vda1 [/]: No such process quotaon: Quota format not supported in kernel.
Dieser Fehler teilt dem Administrator mit, dass der Kernel nicht unterstützt oder dass Sie möglicherweise die falsche Version auf dem Computer haben (wir haben quota_v1 und quota_v2). Zum UbuntuSolche Fehler treten häufig auf einem Cloud-basierten virtuellen Server auf.
Beheben Sie den Fehler, indem Sie das installieren Linux-Image-extra-virtuell Paket mit dem Befehl apt.
quota: Cannot open quotafile //aquota.user: Permission denied quota: Cannot open quotafile //aquota.user: Permission denied quota: Cannot open quotafile //quota.user: No such file or directory
Der Fehler tritt auf, wenn der aktuelle Benutzer keine Berechtigung zum Lesen von Kontingentdateien hat. Als Administrator müssen Sie nur die richtigen Berechtigungsänderungen vornehmen oder sudo verwenden, wenn Sie auf Dateien in einem Quotensystem oder einer Quotendatei zugreifen müssen.
Fazit
Am Anfang des Artikels haben wir mit begonnen Quote Befehlszeilentools und die Überprüfung der Kernel-Version sowie weitere Erläuterungen zum Einrichten eines blockbasierten Kontingents für einen einzelnen Benutzer und zum Generieren eines Berichts über die Verwendung eines Dateisystemkontingents.
Der Artikel behandelt auch häufige Fehler und wie Sie diese vermeiden können, indem Sie ein zusätzliches Paket verwenden oder die Kernelversion auf Ihrem System überprüfen.