In diesem Anfänger-Tutorial lernen Sie den ulimit-Befehl in Linux kennen. Sie erfahren, wie Sie damit die Zuweisung von Systemressourcen steuern.
Was ist ulimit unter Linux?
Ulimit ist ein eingebauter Shell-Befehl zum Anzeigen, Zuweisen und Begrenzen von Ressourcen. Es ist für jedes System unerlässlich, diese Arten von Kontrollen zu regulieren.
Diese Art der Steuerung kann auf globaler, Gruppen- und Benutzerebene erzwungen werden. Es gewährleistet nicht nur eine reibungslose Verarbeitung von Aufgaben, sondern verhindert auch, dass unerwünschte Prozesse Systemressourcen wie RAM und CPU-Leistung verschlingen.
Ulimit ist mit einer Sicherheitskonfigurationsdatei verknüpft. Ihr genauer Standort kann variieren, ist aber normalerweise so etwas wie /etc/security/limits.conf
. Mit Ulimit können wir diese Konfiguration schnell bearbeiten.
Weiche vs. harte Limits
Als Benutzer können Sie Ihre ulimit-Einstellungen tatsächlich anpassen.
Sie fragen sich vielleicht, warum Sie überhaupt ein Limit festlegen sollten, wenn ein Benutzer es anpassen kann. Hier kommen weiche und harte Grenzen ins Spiel.
Aus Admin-Perspektive ziehen Sie es also vielleicht vor, dass Ihr Benutzer um einen bestimmten Wert schwebt. Dies wäre Ihre weiche Grenze (sagen wir 25).
Dann könnten Sie eine feste Grenze festlegen, die von diesem Benutzer nicht überschritten werden darf (50). Der Benutzer wäre berechtigt, sein Limit von 25 auf 50 zu erhöhen.
Ulimit unter Linux verwenden

Hier ist die Syntax für den Befehl ulimit:
ulimit <options>
Alle Limits für jeden Benutzer anzeigen
Sie können auf diese Weise alle Arten von Limits für einen bestimmten Benutzer anzeigen:
ulimit -a user_name
Das -a
Flag zeigt alle Optionen und deren Konfiguration für Ihren spezifischen Benutzernamen an.
Wenn Sie den Benutzernamen weglassen, werden Ihnen Limits angezeigt. Lassen Sie mich Ihnen die standardmäßig für mich eingerichteten Limits zeigen:
[email protected]:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31503
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31503
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Ihre Standardwerte können natürlich von meinen abweichen. Diese Ansicht zeigt eine Beschreibung, das zugewiesene Flag (das zum Ändern der Limits verwendet werden kann) und die Konfiguration.
Hard- und Softlimits anzeigen
Es ist auch möglich, eines dieser jeweiligen Limits mit einem Flag zu sehen.
Um Softlimits anzuzeigen, verwenden Sie die Option -S:
ulimit -S
Um harte Limits anzuzeigen, verwenden Sie die Option -H:
ulimit -H
Es ist sinnvoller, diese mit bestimmten Flags von oben zu kombinieren. Wenn Sie also das harte Limit für die maximale Anzahl von Benutzerprozessen überprüfen möchten, würden Sie Folgendes eingeben:
[email protected]:~$ ulimit -Hu
31503
Limits (vorübergehend) ändern
Jetzt ändern wir diesen Wert zu Demonstrationszwecken auf 31500 und überprüfen das harte Limit erneut.
[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500
Es ist erwähnenswert, dass alle Änderungen, die Ihnen Ihre Berechtigung zulässt, nur vorübergehend geschrieben werden und Ihre aktuelle Shell betreffen.
Um dies zu bestätigen, habe ich meine Shell verlassen und ein neues Terminal erstellt und den ursprünglichen Standardwert erhalten.
[email protected]:~$ ulimit -Hu
31503
Der nächste Abschnitt zeigt, wie Sie die Änderungen dauerhaft machen.
Dauerhafte Änderungen an ulimit vornehmen
Wie ich am Anfang des Artikels erwähnt habe, wird ulimit von /etc/security/limits.conf geregelt. Wenn Sie dauerhafte Änderungen an den ulimits eines beliebigen Benutzers vornehmen möchten, müssen Sie als root Änderungen an der Sicherheitsdatei vornehmen.
Beim Bearbeiten müssen Sie diese vier Elemente einbeziehen:
<domain> <type> <item> <value>
Hier ist der Text, den ich an die Datei angehängt habe, um die harte Grenze für die Anzahl der Prozesse für den Benutzer christoper (d. h. mein eigenes Konto) festzulegen:
christopher hard nproc 2000
Denken Sie daran, dass es eine bewährte Methode ist, das Root-Konto nicht zu aktivieren, es sei denn, Sie sind sich der möglichen Folgen voll bewusst. Ich habe das auf einer virtuellen Maschine gemacht, damit Sie es nicht selbst machen müssen.
[email protected]:~$ su
Password:
[email protected]:/home/christopher# nano /etc/security/limits.conf
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000
Wie Sie sehen können, wurde das Limit für „Christopher“ auf 20000 geändert.
Woher wissen Sie, welches Schlüsselwort Sie zum Bearbeiten der Datei /etc/security/limits.conf verwenden müssen? Nun, hier ist eine Tabelle, die mögliche Artikelschlüsselwörter und ihre Beschreibungen enthält:
Elementschlüsselwort | Beschreibung |
---|---|
Kern | begrenzt die Kerndateigröße (KB) |
Daten | maximale Datengröße (KB) |
fsize | maximale Dateigröße (KB) |
memlock | maximal gesperrter Adressraum (KB) |
nofile | maximale Anzahl offener Dateideskriptoren |
rss | maximale residente Satzgröße (KB) |
stapeln | maximale Stapelgröße (KB) |
Prozessor | maximale CPU-Zeit (MIN) |
nproc | maximale Anzahl von Prozessen |
als | Adressraumlimit (KB) |
maxlogins | maximale Anzahl von Anmeldungen für diesen Benutzer |
maxsyslogins | maximale Anzahl von Anmeldungen auf dem System |
Priorität | die Priorität, mit der Benutzerprozesse ausgeführt werden |
Sperren | maximale Anzahl von Dateisperren, die der Benutzer halten kann |
Signierung ausstehend | maximale Anzahl ausstehender Signale |
Nachrichtenwarteschlange | – Maximaler Speicher, der von POSIX-Nachrichtenwarteschlangen verwendet wird (Bytes) |
schön | maximale nette Priorität, die auf Werte erhöht werden darf:[-20, 19] |
rtprio | maximale Echtzeitpriorität |
chroot | Wurzelverzeichnis in Verzeichnis ändern (Debian-spezifisch) |
Grenztyp | Beschreibung |
---|---|
hart | harte Grenze |
weich | Soft-Limit |
– | sowohl hartes als auch weiches Limit |
Ulimit für Gruppen ändern
Das Ändern einer Gruppenrichtlinie ist dem, was Sie im vorherigen Abschnitt gesehen haben, sehr ähnlich, aber Sie werden ein @
einfügen Symbol vor dem Namen der Gruppe.
Hier ist ein Beispiel, in dem ich die maximale Anzahl der Anmeldungen für die Gruppe Student auf 4 festlege, indem ich die Datei /etc/security/limits.conf bearbeite:
@student - maxlogins 4
Fazit
Ich hoffe, Ihnen hat diese kurze Einführung zum Linux-Befehl ulimit gefallen.
Wenn Sie Kommentare oder Fragen haben, hinterlassen Sie diese unten. Wenn Sie Vorschläge für Themen haben, die behandelt werden sollen, können Sie diese auch gerne hinterlassen.