Wie kann man eine Gabelbombe verhindern?


13

Um eine Gabelbombe zu verhindern, folgte ich diesen http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

ulimit -aspiegelt die neuen Einstellungen wieder, aber wenn ich (wie rootin bash) :(){ :|:&};:laufe, geht die VM immer noch auf max. CPU + RAM und das System friert ein.

Wie kann sichergestellt werden, dass Benutzer das System nicht durch Verwendung von Gabelbomben oder Ausführen einer Buggy-Anwendung zum Absturz bringen?

Betriebssystem: RHEL 6.4


Ich kann es hier nicht reproduzieren. Versuchen Sie das rootzufällig? Aus welcher Shell probierst du es? (Das fehlende Leerzeichen nach {schlägt vor, zshaber ich kann es dort auch nicht reproduzieren).
Stéphane Chazelas

Stephane Chazelas: 1] Ich lief als root, ich habe es mit normalen Benutzern versucht, es funktioniert. 2] Das fehlende Leerzeichen ist ein Tippfehler. Ich verwende bash.Sorry. 3] Kann ulimit den Benutzer 'root' nicht moderieren?
User44441

@ stephane-chazelas 1] Ich lief als root, ich habe es mit normalem Benutzer versucht, es funktioniert. 2] Das fehlende Leerzeichen ist ein Tippfehler. Ich verwende bash.Sorry. 3] Kann ulimit den Benutzer 'root' nicht moderieren?
User44441

Antworten:


7

Der Superuser oder ein Prozess mit den Funktionen CAP_SYS_ADMIN oder CAP_SYS_RESOURCE sind von dieser Einschränkung nicht betroffen. Diese Einschränkung kann nicht geändert werden. rootkann immer Prozesse gabeln.

Wenn eine Software nicht als vertrauenswürdig eingestuft wird, sollte sie nicht wie rootgewohnt ausgeführt werden.


3
Wenn es nichts Besonderes tut, sollte sowieso so ziemlich nichts als root laufen. root ist das Konto, das Sie verwenden, wenn Sie müde sind, herauszufinden, welche Berechtigungen / Rechte Sie benötigen, um dies herauszufinden, oder einen grundlegenden Systemdienst.
Bratchley

10

Damit diese Änderung allgegenwärtig wird, müssen Sie der gesamten Umgebung diese Grenzwerte hinzufügen. Änderungen, die mit dem ulimitBefehl vorgenommen werden, gelten nur für die aktuelle Umgebung.

HINWEIS: Dies hat keine Auswirkungen auf den Root-Benutzer!

Beispiel

Bearbeiten Sie diese Datei: vi /etc/security/limits.confund fügen Sie der Datei Einträge hinzu, die die Anzahl der Prozesse ( nproc) begrenzen, die ein bestimmter Benutzer oder eine bestimmte Benutzergruppe haben darf.

vivek hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200

HINWEIS: Diese Datei enthält weitere Beispiele. Seien Sie vorsichtig, wenn Sie "all" (auch bekannt als "all" *) verwenden. Dadurch werden auch die Systemkonten eingeschränkt.

Verweise


Während "alle" Systemkonten einschränken, werden die meisten Dienste, die von diesen Systemkonten ausgeführt werden, nicht durchgelassen pam_limits.
Jordan

Kann ulimit den Benutzer 'root' nicht moderieren?
user44441

Nur als allgemeine Idee für das Hinzufügen von mehr zum Beitrag möchten Sie möglicherweise etwas über pam_cgroup zum Beitrag hinzufügen, da die Plattform des OP dies unterstützt und dies pam_limitsmöglicherweise ersetzt wird, sobald die Akzeptanz von cgroups zunimmt .
Bratchley

Da es aussieht, als würde das OP mit den Richtlinien zur Ressourcennutzung herumspielen, cgroupswürden sie bessere Regler für die Netzwerk- und CPU-Auslastung erhalten.
Bratchley
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.