Überprüfen und Festlegen von Benutzerlimits mit dem Linux-Befehl ulimit
Der Befehl ulimit in Linux wird verwendet, um die Menge an Systemressourcen zu begrenzen, die einzelne Benutzer verbrauchen können.
Ob es die Absicht des Benutzers ist oder einfach nur versehentlich passiert, ein einzelner Benutzer kann alle verfügbaren Systemressourcen wie RAM, Speicher oder Speicherplatz verbrauchen. Abhängig von der Art Ihres Linux-Systems möchten Sie Ihre Benutzer möglicherweise auf das beschränken, was sie tatsächlich benötigen.
Dies ist eine wesentliche Optimierung, die häufig an virtuellen privaten Servern oder anderen Shared-Hosting-Situationen vorgenommen wird, bei denen ein einzelner Server an Dutzende von Benutzern vermietet werden kann. In diesem Tutorial erfahren Sie anhand von Beispielen, wie Sie den Befehl ulimit unter Linux verwenden. Im Folgenden erfahren Sie mehr über die verschiedenen Optionen, die Sie mit diesem Befehl verwenden können.
In diesem Tutorial lernen Sie:
- So verwenden Sie den Befehl ulimit unter Linux
Häufig verwendete Optionen
Fork-Bomben, Befehle wie yes und fehlerhafte Programme können in sehr kurzer Zeit tonnenweise Systemressourcen verbrauchen. Dies wirkt sich auf die Erfahrung aller anderen Benutzer auf dem System aus, nur weil eine Person die Systemressourcen missbraucht (entweder absichtlich oder nicht).
Der Befehl ulimit ist die Lösung für dieses Problem. Sehen Sie sich einige der folgenden Ulimit-Beispiele an, um zu sehen, wie Sie den Verbrauch von Systemressourcen für Ihre Benutzer begrenzen können.
ulimit Befehl in Linux Grundlegende Beispiele
Alle unten aufgeführten Grenzwerte gelten nur für die aktuelle Bash-Shell-Sitzung. Um eine dauerhafte Änderung an der systemweiten Verwendung vorzunehmen, müssen Sie Änderungen an der
Datei /etc/security/limits.conf vornehmen. Wie das geht, zeigen wir in einem späteren Abschnitt.Verwenden Sie den Befehl ulimit mit der Option
-a, um eine Liste aller Grenzwerte Ihres Benutzers auf dem System anzuzeigen, oder einfach ulimit allein, um eine schnelle Zusammenfassung zu sehen.ulimit -aUm die maximale Anzahl von Prozessen zu begrenzen, die ein Benutzer erzeugen kann, verwenden Sie die Option
-u. Dieser Befehl begrenzt sie auf 10 Prozesse. Dies wird sich um Dinge wie Gabelbomben kümmern.ulimit -u 10Wenn wir versuchen, dieses Limit zu überschreiten, wird ein Fehler angezeigt:
bash: fork: retry: Resource temporarily unavailableDie Option
-fermöglicht es uns, die Größe einer Datei zu begrenzen, die ein Benutzer erstellen kann. Mit diesem Befehl wird ein Benutzer auf Dateien mit einer Größe von 100 KB oder weniger beschränkt.ulimit -f 100Und das passiert, wenn wir jetzt versuchen, das Limit zu überschreiten.
cat /dev/zero > file File size limit exceeded (core dumped) ls -lh file -rw-rw-r--. 1 linuxconfig linuxconfig 100K Feb 21 18:27 fileMit ulimit ist es auch möglich, die maximale Menge an virtuellem Speicher zu begrenzen, die einem Prozess zur Verfügung steht. Verwenden Sie dazu die Option
-v.ulimit -v 1000Um die Anzahl der Dateien zu begrenzen, die ein Benutzer gleichzeitig geöffnet haben kann (Dateideskriptoren), verwenden Sie die Option
-n.ulimit -n 10Wenn dieser Grenzwert überschritten wird, erhalten Sie eine Fehlermeldung wie diese:
bash: command: Too many open files
Inzwischen sollten Sie auf die Idee kommen, dass Sie jede der Optionen verwenden können, um neue Arten von Limits zu setzen. Verwenden Sie ulimit --help oder einfach ulimit -a, um die Arten von Limits zu sehen, die Sie auferlegen können, und die entsprechenden Befehlsoptionen.
Sie können jederzeit den Befehl man verwenden, um mehr über den Befehl ulimit und seine offizielle Dokumentation zu erfahren. Klicken Sie auf den vorherigen Link, um zu sehen, wie Sie die Handbuchseiten für einen beliebigen Befehl auf einem Linux-System öffnen.
Erweiterte Nutzung
Bisher haben wir mit dem Befehl ulimit "weiche" Grenzen gesetzt. Dabei handelt es sich um Limits, die von den Benutzern selbst erstellt werden und so hoch gehen können, wie es das "harte" Limit zulässt. Um ein "hartes" Limit zu erstellen, bearbeiten wir die Datei /etc/security/limits.conf.
ulimit-Befehl in Linux Fortgeschrittene Beispiele
Verwenden Sie die Root-Berechtigungen, um die Datei
/etc/security/limits.confzu öffnen. In diesem Beispiel wird nano verwendet, aber Sie können auch einen anderen Texteditor verwenden, wenn Sie dies bevorzugen.sudo nano /etc/security/limits.confAm Ende dieser Datei werden wir unseren Benutzern einige harte Limits auferlegen, die systemweit durchgesetzt werden. Die allgemeine Syntax sieht folgendermaßen aus:
[domain] [type] [item] [value][domain]kann ein Benutzername, ein Gruppenname oder ein Platzhalter sein.[type]kann entweder "weich" oder "hart" sein, je nachdem, welche Art von Limit Sie durchsetzen möchten.[item]ist das, was Sie begrenzen möchten, z. B. "CPU" oder "nproc" (Anzahl der Prozesse) usw.[value]ist die Anzahl, die Sie erzwingen möchten.Alle diese Informationen sind in der Datei selbst zusammengefasst, falls Sie es vergessen sollten.
Versuchen wir als Beispiel, die Anzahl der Prozesse, die Benutzer in der Gruppe "Unternehmen" erzeugen können, zu begrenzen. Das Hinzufügen dieser Zeile zur Datei würde es den Benutzern in der Gruppe nur erlauben, maximal 10 Prozesse zu erzeugen.
@corporate hard nproc 20-
Für ein weiteres Beispiel begrenzen wir die Menge an Dateigröße, die der Benutzer "linuxconfig" verwenden kann. Dadurch wird der Benutzer auf 10 MB beschränkt. Wir müssen die Zahl als 10000 schreiben, da sie in Kilobyte angegeben werden muss.
linuxconfig hard fsize 10000
Verwenden Sie einen der in der Datei /etc/security/limits.conf beschriebenen Limittypen, um Limits für Benutzer, Gruppen oder alle Benutzer im gesamten System festzulegen.
Abschließende Gedanken
In diesem Tutorial haben wir alles über den Befehl ulimit unter Linux gelernt. Der Befehl ulimit ist für Systeme mit mehreren Benutzern unerlässlich, um sicherzustellen, dass jeder fair spielt und nur seinen Anteil an den Systemressourcen verwendet.
Wenn Sie möchten, dass Ihre Grenzwerte beibehalten werden, können Sie die ulimit-Konfigurationsdatei wie oben gezeigt bearbeiten, um Systembeschränkungen für Benutzer, Gruppen oder jedes Konto auf dem System festzulegen.


