Ulimit: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Textersetzung - „Man-Pages“ durch „Man-Page“ |
||
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Wert einer Ressourcengrenze ausgeben lassen oder neu setzen | |||
'''topic''' - Kurzbeschreibung | |||
= Beschreibung = | |||
= Installation = | |||
= Syntax = | |||
== Parameter == | |||
== Optionen == | |||
= Konfiguration = | |||
= Anwendung = | |||
= Links = | |||
== Dateien == | |||
== Man-Page == | |||
== Intern == | |||
== Weblinks == | |||
=Kontrollfragen= | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
''Testfrage 1'' | |||
<div class="mw-collapsible-content">'''Antwort1'''</div> | |||
</div> | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
''Testfrage 2'' | |||
<div class="mw-collapsible-content">'''Antwort2'''</div> | |||
</div> | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
''Testfrage 3'' | |||
<div class="mw-collapsible-content">'''Antwort3'''</div> | |||
</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> | |||
== Welche Grenzen sind vorhanden? == | |||
$ ulimit -a | $ ulimit -a | ||
core file size (blocks, -c) 0 | |||
data seg size (kbytes, -d) unlimited | |||
file size (blocks, -f) unlimited | |||
max locked memory (kbytes, -l) unlimited | |||
max memory size (kbytes, -m) unlimited | |||
open files (-n) 1024 | |||
pipe size (512 bytes, -p) 8 | |||
stack size (kbytes, -s) unlimited | |||
cpu time (seconds, -t) unlimited | |||
max user processes (-u) 2046 | |||
virtual memory (kbytes, -v) unlimited | |||
== Option == | |||
–H Harte Grenze. Alle Benutzer dürfen eine harte Grenze herabsetzen, aber nur privilegierte Benutzer können sie erhöhen. | |||
–S Weiche Grenze. Sie muss unterhalb der harten Grenze liegen. | |||
–a Gibt alle Grenzwerte aus | |||
–c Maximale Größe der Speicherabzüge (core-File) | |||
–d Maximale Größe eines Datensegments oder Heaps in Kilobyte | |||
–f Maximale Anzahl an Dateien (Standardoption) | |||
–m Maximale Größe des physischen Speichers in Kilobyte (Bash und Korn-Shell only) | |||
–n Maximale Anzahl Filedeskriptoren (plus 1) | |||
–p Größe des Pipe-Puffers (Bash und Korn-Shell only, meistens 512 Bytes) | |||
–s Maximale Größe eines Stacksegments in Kilobyte | |||
–t Maximale CPU-Zeit in Sekunden | |||
–u Maximale Anzahl von User-Prozessen | |||
–v Maximale Größe des virtuellen Speichers in Kilobyte | |||
== Anwendung == | |||
$ ulimit -u 1000 | |||
Folgende ulimit-Werte werden z. B. gern eingesetzt, um primitive DOS-(Denial of Service-)Angriffe zu erschweren,die Werte auch abhängig von der Anwendung eines Rechners). Am besten trägt man solche Werte in /etc/profile ein,(hierbei sind auch die anderen Profil- und Startup-Dateien in Erwägung zu ziehen | |||
* Core Dumps verhindern ulimit -c | * Core Dumps verhindern ulimit -c | ||
* keine Dateien größer 512 MB zulassen ulimit -f 512000 | * keine Dateien größer 512 MB zulassen ulimit -f 512000 | ||
Zeile 47: | Zeile 84: | ||
* weiches Limit der Speichernutzung 20 MB ulimit -S -v 20000 | * weiches Limit der Speichernutzung 20 MB ulimit -S -v 20000 | ||
* Mit diesem Befehl können die von der Shell und aus dieser gestarteten Prozesse verfügbaren Ressourcen beschränkt werden. | |||
* Der Administrator kann durch Verwendung des Kommandos in der /etc/profile einem jeden Benutzer, dessen Login-Shell die Bash ist, unwiderrufliche Schranken auferlegen. | |||
* Der Benutzer kann diese Werte dann nur verringern; aber niemals erhöhen (dies darf einzig Root). | |||
* Jede Ressource kann durch zwei Werte beschränkt werden. | |||
* Das Softlimit kann überschritten werden, während die Anforderung von Ressourcen, die das Hardlimit überschreiten mit einer Fehlermeldung abgewiesen werden. Softlimit setzt man mit der Option -L, das Hardlimit mit -H; ohne Option werden beide Limits mit ein und denselben Wert belegt. | |||
Die Option -a bringt alle Ressourcen und die Softlimits zum Vorschein: | |||
$ '''ulimit -a''' | |||
core file size (blocks) 0 # -c | |||
data seg size (kbytes) unlimited # -d | |||
file size (blocks) unlimited # -f | |||
max locked memory (kbytes) unlimited # -l | |||
max memory size (kbytes) unlimited # -m | |||
open files 1024 # -n | |||
pipe size (512 bytes) 8 # -p | |||
stack size (kbytes) unlimited # -s | |||
cpu time (seconds) unlimited # -t | |||
max user processes 1024 # -u | |||
virtual memory (kbytes) unlimited # -v | |||
Hinter den einzelnen Ausgabezeilen haben wir die Optionen eingefügt, die Sie zur Manipulation eines konkreten Limits angeben müssen. | |||
Eine core-Datei ist ein Speicherauszug, also ein Abbild des RAM. | |||
* Linux schreibt den Speicherbereich eines Prozesses, falls jener mit einem schwerwiegenden Fehler abbricht (z. B. Speicherschutzverletzung) in eine Datei, die anschließend mittels eines Debuggers nach der Fehlerursache hin untersucht werden kann. | |||
* Dazu bedarf es allerdings weitreichender Programmiererfahrungen. Da diese Cores mehrere MByte groß werden können, empfiehlt sich deren Anlegen zu unterbinden (Wert 0). | |||
Zu jedem Prozess gehören neben dem im RAM liegenden Programm noch ein Datensegment für (der Name sagt's schon) die Daten und ein Stack, der u.a zur Wertübergabe zwischen Funktionen verwendet wird. Wer nicht genau weiß, was er tut, tut gut daran, mit diesen Limits nichts zu tun. | |||
Die weiteren Werte sollten selbsterklärend sein. Der Systemadministrator ist berechtigt, ein Limit aufzuheben, indem er an Stelle des Wertes das Schlüsselwort unlimited angibt. | |||
Abschließend sei noch erwähnt, dass die vom System vorgegebenen Grenzen mit den hiesigen Werten nicht manipuliert werden können; dies geht nur durch Erzeugung eines neuen Kernels oder durch Änderungen einiger Parameter zur Laufzeit (siehe Prozessdateisystem). | |||
= Links = | |||
== Intern == | |||
== Extern == | |||
[[ | [[Kategorie:Linux/Befehl]] | ||
[[ | [[Kategorie:Linux/Zugriffsrechte]] | ||
[[Kategorie:Bash/Builtin]] | |||
[[Kategorie:Bash/Interaktiv]] |
Aktuelle Version vom 6. November 2024, 12:45 Uhr
Wert einer Ressourcengrenze ausgeben lassen oder neu setzen
topic - Kurzbeschreibung
Beschreibung
Installation
Syntax
Parameter
Optionen
Konfiguration
Anwendung
Links
Dateien
Man-Page
Intern
Weblinks
Kontrollfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5
Welche Grenzen sind vorhanden?
$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 2046 virtual memory (kbytes, -v) unlimited
Option
–H Harte Grenze. Alle Benutzer dürfen eine harte Grenze herabsetzen, aber nur privilegierte Benutzer können sie erhöhen. –S Weiche Grenze. Sie muss unterhalb der harten Grenze liegen. –a Gibt alle Grenzwerte aus –c Maximale Größe der Speicherabzüge (core-File) –d Maximale Größe eines Datensegments oder Heaps in Kilobyte –f Maximale Anzahl an Dateien (Standardoption) –m Maximale Größe des physischen Speichers in Kilobyte (Bash und Korn-Shell only) –n Maximale Anzahl Filedeskriptoren (plus 1) –p Größe des Pipe-Puffers (Bash und Korn-Shell only, meistens 512 Bytes) –s Maximale Größe eines Stacksegments in Kilobyte –t Maximale CPU-Zeit in Sekunden –u Maximale Anzahl von User-Prozessen –v Maximale Größe des virtuellen Speichers in Kilobyte
Anwendung
$ ulimit -u 1000
Folgende ulimit-Werte werden z. B. gern eingesetzt, um primitive DOS-(Denial of Service-)Angriffe zu erschweren,die Werte auch abhängig von der Anwendung eines Rechners). Am besten trägt man solche Werte in /etc/profile ein,(hierbei sind auch die anderen Profil- und Startup-Dateien in Erwägung zu ziehen
- Core Dumps verhindern ulimit -c
- keine Dateien größer 512 MB zulassen ulimit -f 512000
- weiches Limit von max. 250 Filedeskriptoren ulimit -S -n 250
- weiches Maximum von 100 Prozessen ulimit -S -u 100
- Speicherbenutzung max. 50 MB ulimit -H -v 50000
- weiches Limit der Speichernutzung 20 MB ulimit -S -v 20000
- Mit diesem Befehl können die von der Shell und aus dieser gestarteten Prozesse verfügbaren Ressourcen beschränkt werden.
- Der Administrator kann durch Verwendung des Kommandos in der /etc/profile einem jeden Benutzer, dessen Login-Shell die Bash ist, unwiderrufliche Schranken auferlegen.
- Der Benutzer kann diese Werte dann nur verringern; aber niemals erhöhen (dies darf einzig Root).
- Jede Ressource kann durch zwei Werte beschränkt werden.
- Das Softlimit kann überschritten werden, während die Anforderung von Ressourcen, die das Hardlimit überschreiten mit einer Fehlermeldung abgewiesen werden. Softlimit setzt man mit der Option -L, das Hardlimit mit -H; ohne Option werden beide Limits mit ein und denselben Wert belegt.
Die Option -a bringt alle Ressourcen und die Softlimits zum Vorschein:
$ ulimit -a core file size (blocks) 0 # -c data seg size (kbytes) unlimited # -d file size (blocks) unlimited # -f max locked memory (kbytes) unlimited # -l max memory size (kbytes) unlimited # -m open files 1024 # -n pipe size (512 bytes) 8 # -p stack size (kbytes) unlimited # -s cpu time (seconds) unlimited # -t max user processes 1024 # -u virtual memory (kbytes) unlimited # -v
Hinter den einzelnen Ausgabezeilen haben wir die Optionen eingefügt, die Sie zur Manipulation eines konkreten Limits angeben müssen.
Eine core-Datei ist ein Speicherauszug, also ein Abbild des RAM.
- Linux schreibt den Speicherbereich eines Prozesses, falls jener mit einem schwerwiegenden Fehler abbricht (z. B. Speicherschutzverletzung) in eine Datei, die anschließend mittels eines Debuggers nach der Fehlerursache hin untersucht werden kann.
- Dazu bedarf es allerdings weitreichender Programmiererfahrungen. Da diese Cores mehrere MByte groß werden können, empfiehlt sich deren Anlegen zu unterbinden (Wert 0).
Zu jedem Prozess gehören neben dem im RAM liegenden Programm noch ein Datensegment für (der Name sagt's schon) die Daten und ein Stack, der u.a zur Wertübergabe zwischen Funktionen verwendet wird. Wer nicht genau weiß, was er tut, tut gut daran, mit diesen Limits nichts zu tun.
Die weiteren Werte sollten selbsterklärend sein. Der Systemadministrator ist berechtigt, ein Limit aufzuheben, indem er an Stelle des Wertes das Schlüsselwort unlimited angibt.
Abschließend sei noch erwähnt, dass die vom System vorgegebenen Grenzen mit den hiesigen Werten nicht manipuliert werden können; dies geht nur durch Erzeugung eines neuen Kernels oder durch Änderungen einiger Parameter zur Laufzeit (siehe Prozessdateisystem).