Czy można wywołać panikę jądra za pomocą jednego wiersza poleceń?
Jakie byłoby najprostsze takie polecenie dla użytkownika sudoing i jakie byłoby dla zwykłego użytkownika, jeśli takie istnieje?
Scenariusze sugerujące pobranie czegoś w ramach polecenia nie liczą się.
command-line
kernel
kernel-panic
Desmond Hume
źródło
źródło
:(){ :|:& };:
może?:()
definiuje funkcję wywoływaną:
z treścią:|:&
, co oznacza „uruchom: a także uruchom: w tle”.;
kończy definicję funkcji i:
wywołuje twoją nową funkcję, która bez końca tworzy nowe wersje siebie, dopóki nie osiągniesz limitów procesowych lub system nie zatrzyma się. Jest to polecenie, które skutecznie zamraża każdy system bez ustalonych dobrych limitów procesów. Nie próbuj tego w domu.dd if=/dev/urandom of=/dev/mem
(w zależności od wersji jądra, możesz nie mieć/dev/kmem
). Ale potem nie używałbym systemu. :)Odpowiedzi:
FreeBSD:
Linux (więcej informacji tutaj ):
źródło
echo c > /proc/sysrq-trigger
na pewno robi dobrą robotę w zamrażaniu systemu Linux. Ale osobiście dobry czarny ekran śmierci opowiadający o dramatycznym rozwoju stosu wywołań wydawałby się bardziej „kanoniczną” paniką jądra.echo 1 > /proc/sys/kernel/sysrq
zanim będzie to możliweecho c > /proc/sysrq-trigger
.Kompiluje moduł, który powoduje awarię jądra poprzez wywołanie
panic
funkcji, potrzebuje roota, wymagamake
igcc
zamienia „przepełnienie bufora na 0x4ba4c73e73acce54” w poleceniu na coś interesującego dla uzyskania większej dramatyzmu.
źródło
apt-get install kdump-tools
w Raspbian / Debian.Jądro ma działać bez względu na wszystko. Tak więc jakikolwiek sposób na wywołanie paniki w jądrze przez interakcję użytkownika (inny niż celowy wandalizm wszechpotężnego roota, jak żartobliwie proponuje Bruce Ediger, a większość dzisiejszych jąder jest zbudowana, aby większość tych dowcipów nie działała w pierwszej kolejności) bardzo poważny błąd, który zostałby naprawiony szybko.
źródło
:(){ :|:& };:
./etc/security/limits.conf
pliku.Nie wiem, dlaczego wcześniej o tym nie wspomniano ...
Panika z komunikatem „próbował zabić init”.
źródło
Spróbuj tego:
Spowodowało to dla mnie bardzo szybką panikę jądra, ale nie jestem pewien, jak bezpieczny jest ten proces, ponieważ zrobiłem to podczas instalacji Ubuntu na żywo. Ale jądro wysyłało do mnie komunikaty o błędach spamu, gdy robiłem to w czystym środowisku terminalowym.
źródło
wkompiluj poniższy kod w moduł i włóż go, upewnij się, że powinieneś się panikować:
źródło
oops
, ale nie panikę.Najłatwiej jest przytrzymać klawisz Alt + Print Screen (sysrq) i nacisnąć c, trzymając je. Robi to samo jak
echo c > /proc/sysrq-trigger
małe wyjaśnienie: klawisz sysrq służy do wysyłania poleceń niskiego poziomu do samego jądra, w ostateczności spróbować zapisać system. Jeśli przytrzymasz klawisz Alt + Print Screen (sysrq) i naciśniesz obok niego inny klawisz, będzie to samo, co w przypadku echa klawisza w tym pliku wyzwalacza sysrq. Nie bez powodu nazywają to wyzwalaczem; 3 „c” informuje jądro o awarii (powoduje panikę jądra)Możesz jednak chcieć zobaczyć zawartość „proc / sys / kernel / sysrq”. Jeśli jest to 178 lub cokolwiek innego, powinieneś zmienić to na 1. 0 jest wyłączone, wszystkie 1 jest włączone, a wszystko większe niż 1 jest bitmapą dla określonych rzeczy, które jądro pozwala na sysrq.
źródło