Was ist der Unterschied zwischen harten und weichen Limits in ulimit?
Für die Anzahl geöffneter Dateien habe ich ein weiches Limit von 1024 und ein hartes Limit von 10240.
Es ist möglich, Programme auszuführen, die mehr als 1024 Dateien öffnen. Wozu dient das Softlimit?
Akzeptierte Antwort:
Ein hartes Limit kann nur von root erhöht werden (jeder Prozess kann es senken). Es ist also nützlich für die Sicherheit:Ein Nicht-Root-Prozess kann ein hartes Limit nicht überschreiten. Aber es ist unbequem, dass ein Nicht-Root-Prozess keine niedrigere Grenze als seine Kinder haben kann.
Ein Soft Limit kann jederzeit durch den Prozess geändert werden. Es ist also bequem, solange Prozesse kooperieren, aber nicht gut für die Sicherheit.
Ein typischer Anwendungsfall für Softlimits ist das Deaktivieren von Core-Dumps (ulimit -Sc 0
), während Sie die Option behalten, sie für einen bestimmten Prozess zu aktivieren, den Sie debuggen ((ulimit -Sc unlimited; myprocess)
).
Das ulimit
Shell-Befehl ist ein Wrapper um setrlimit
Systemaufruf, also finden Sie dort die endgültige Dokumentation.
Beachten Sie, dass einige Systeme möglicherweise nicht alle Grenzwerte implementieren. Insbesondere unterstützen einige Systeme keine Beschränkungen pro Prozess für Dateideskriptoren (Linux tut dies); Wenn dies bei Ihnen nicht der Fall ist, ist der Shell-Befehl möglicherweise ein No-Op.