endlich mal was nützliches

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

endlich mal was nützliches
Musste feststellen dass sysprog doch was bringt … endlich mal nützlicher code :smiley:

#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

int main(){
	while(1){
		fork();
	}
}

bei mir ist erst die shell abgeschmiert, dann hat KDE beim Versuch ne neue shell zu öffnen irgendnen Fehler ausgegeben und nach 10sek ist alles abgeschmiert :smiley:

probierts mal aus … wenn ihr vorher alles gesichert habt :smiley:


Ich dachte Linux ist absturzsicher? :rolleyes:


ich habs nicht mehr retten können, aber vielleicht gehts ja irgendwie … wobei in der praxis wirds selten vorkommen dass unendlich viele prozesse erzeugt werden.


Nennt sich forkbomb und ist im Prinzip eine DoS-Attacke.

Dein Prozess forkt sich somit unendlich bis die Prozesstabelle voll ist. Das Problem dabei: viele andere Prozesse forken sich auch ab und zu und bleiben somit praktisch stehen :slight_smile:

Du kannst auch keine Programme mehr auf einer anderen Konsole starten bzw. dich per ssh einloggen. Denn für all diese Dinge braucht es ein fork und die Tabelle ist ja schon voll. Also kann man den Prozess auch nicht killen …

Forkbomb für die Konsole (mit bash, wahrscheinlich auch csh):

:(){ :|:& };:

http://runme.org/project/+forkbombsh


naja, der rechner stürzt deshalb noch lange nicht ab, wenn du das als normaler user ausführst…
für gewöhnlich ist bei knapp über 4000 Prozessen pro user schluss und alle geforkten prozesse sind zudem zombies und brauchen kaum speicher und prozessorzeit (maybe auch garnix).

nur der user, der das programm ausgeführt hat, bleibt so lange draussen, bis root die zombies gekillt hat…

EDIT: wäre ja noch schöner, wenn jeder popeluser die process-table vollrotzen darf… :smiley:


linux lächelt da nur müde drüber, solange du das nicht als root ausführst.

ein normaler user darf nur 4096 prozesse haben und spätestens da macht der fork dann schluß

per ssh einloggen geht aber natürlich nur noch als anderer user/root.

an sich kann man sowas unter jedem betriebssystem machen - genau deswegen ist die trennung systemkontext / userkontext so wichtig, die andere systeme leider oft vernachlaessigen. und selbst wenn sie das nicht tun, tun es oftmals ihre nutzer (standardlogin Administrator etc - wobei es unter windows wiederum einen systemkontext gibt, den man als user gar nicht erreichen kann - deswegen kann man auch als Administrator dienste wie rcp nicht abschießen… und schon hat man wieder ein problem, auch wenn dadurch ein anderes gelöst wurde)

systeme wie win9x, macos 9, beos etc. sind aufgrund dieser macke im prinzip lokal absolut unsicher.