Можно ли вызвать панику ядра одной командной строкой?
Что будет самой простой такой командой для пользователя sudoing и какой она будет для обычного пользователя, если таковая имеется?
Сценарии, которые предлагают загрузить что-либо как часть команды, не учитываются.
command-line
kernel
kernel-panic
Десмонд Хьюм
источник
источник
:(){ :|:& };:
может быть?:()
определяет функцию, вызываемую:
телом:|:&
, что означает «запустить: а также запустить: в фоновом режиме».;
завершает определение функции и:
вызывает вашу новую функцию, которая бесконечно порождает новые версии самой себя, пока вы либо не достигнете пределов процесса, либо система не остановится. Это команда, которая эффективно замораживает любую систему без установленных хороших технологических ограничений. Не пытайтесь делать это дома.dd if=/dev/urandom of=/dev/mem
(в зависимости от версии вашего ядра, вы можете не иметь/dev/kmem
). Но я бы не стал пользоваться системой после этого. :)Ответы:
FreeBSD:
Linux (подробнее здесь ):
источник
echo c > /proc/sysrq-trigger
конечно, хорошо справляется с заморозкой системы Linux. Но лично, хороший черный экран смерти, повествующий о драматическом развитии стека вызовов, будет ощущаться как «каноническая» паника ядра.echo 1 > /proc/sys/kernel/sysrq
прежде чем вы сможетеecho c > /proc/sysrq-trigger
.Компилирует модуль, который вылетает из ядра, вызывая
panic
функцию, требует root, требуетmake
иgcc
заменил «переполнение буфера в 0x4ba4c73e73acce54» в команде чем-то интересным для большей драматургии.
источник
apt-get install kdump-tools
на Raspbian / Debian.Ядро должно работать независимо от того, что. Таким образом, любой способ вызвать панику ядра из-за взаимодействия с пользователем (кроме преднамеренного вандализма со стороны всемогущего root, как предлагает Брюс Эдигер, как шутливо предлагает Брюс, и большинство ядер сегодня построены так, что большинство этих шуток не будет работать в первую очередь), является чрезвычайно серьезная ошибка, которая будет быстро исправлена.
источник
:(){ :|:& };:
./etc/security/limits.conf
файл.Я не знаю, почему это не упоминалось раньше ...
Паника с сообщением "попытался убить init".
источник
Попробуй это:
Это вызвало у меня очень быструю панику в ядре, но я не уверен, насколько безопасен этот процесс, потому что я сделал это в реальной установке Ubuntu. Но ядро сообщало мне об ошибках спама, когда я делал это в чистой терминальной среде.
источник
скомпилируйте следующий код в модуль и вставьте его, убедитесь, что у вас возникла паника:
источник
oops
, но не панику.Самое простое - удерживать нажатой клавишу alt + print screen (sysrq) и нажимать c, удерживая их. Это делает то же самое, что и
echo c > /proc/sysrq-trigger
Небольшое объяснение: клавиша sysrq используется для отправки низкоуровневых команд самому ядру, в качестве крайней меры попытаться сохранить систему. Если вы удерживаете нажатой клавишу alt + print screen (sysrq) и нажимаете другую клавишу рядом с ними, это происходит так же, как если бы вы отображали клавишу в этом файле триггера sysrq. Они называют это триггером по причине; 3 'c' говорит ядру о сбое (вызывает панику ядра)Однако вы можете захотеть увидеть содержимое 'proc / sys / kernel / sysrq'. Если это 178 или что-то еще, вы должны изменить его на 1. 0 - все отключено, 1 - все включено, а все, что больше 1, является растровым изображением для конкретных вещей, которые ядро позволяет делать с sysrq.
источник