Как вызвать панику ядра с единственной командой?

Проблема, вероятно, заключается в не наличии, выполняют разрешение в одном из продвижения родительских каталогов до корневого каталога ircuser. Для любого пользователя для пересечения, не обязательно изучают каталог, тот пользователь должен иметь, выполняют разрешение или через группу, или через другой. Если у Вас есть эти полномочия:

drwxrwx--- 2 myuser myuser 4096 Mar  2 10:28 /home/myuser

И ircuser не является частью myuser группы, затем ircuser не может получить доступ ни к какому файлу внизу, даже если это имеет полномочия для того каталога. Если Вы пробуете это вместо этого:

drwxrwx--x 2 myuser myuser 4096 Mar  2 10:28 /home/myuser

Затем ircuser не может просмотреть корневой каталог myuser, но он может потенциально получить доступ к некоторому файлу под ним такой как /home/myuser/_web/ircuser

ОБНОВЛЕНИЕ: еще Несколько деталей я уехал из вышеупомянутого описания. Полномочия оценены, поскольку Вы пересекаете файловую систему. Возможно смочь получить доступ к папке, начинающей с текущего каталога, что Вы не можете получить доступ к запуску с корневого каталога. При изменении рабочего каталога на где-то в другом месте Вы освободите свой дескриптор на текущем каталоге и освободите доступ к файлам в нем. При использовании чего-то как sudo su - ircuser su переключится на корневой каталог ircuser прежде, чем отбросить полномочия пользователя root. В той точке у Вас есть допустимый дескриптор для корневого каталога ircuser, потому что это - текущий рабочий каталог. При запуске irssi он будет работать в корневом каталоге ircuser как ircuser. При попытке получить доступ к .irssi, который будет работать, потому что Вы имеете, выполняют разрешение на текущем direcory. Если необходимо пересечь каталог, где Вам недостает, выполняют разрешение, iy перестанет работать. Например, открытие файла /home/myuser/_web/ircuser/.irssi или даже начиная с текущего каталога и с помощью относительного пути ../../_web/ircuser/.irssi потому что это требует пересечения /home/myuser где Вы имеете, не выполняют разрешение.

64
27.02.2013, 01:31
7 ответов

FreeBSD:

sysctl debug.kdb.panic=1

Linux (больше информации в документации ядра):

echo c > /proc/sysrq-trigger
82
27.01.2020, 19:32
  • 1
    echo c > /proc/sysrq-trigger уверенный делает хорошее задание в замораживании системы Linux. Но лично, старый хороший черный экран смертельного повествования о поразительной разработке стека вызовов чувствовал бы себя подобно более "канонической" панике ядра. –  Desmond Hume 27.02.2013, 02:01
  • 2
    На Linux Вы могли бы иметь к echo 1 > /proc/sys/kernel/sysrq прежде чем Вы сможете echo c > /proc/sysrq-trigger. –  Christian 19.03.2014, 10:16
  • 3
    , как в OpenBSD? –  mykhal 24.04.2014, 16:35
  • 4
    Когда нужно доказать, насколько дефектный невинная часть hw, это могло бы пригодиться... –  nemesisfixx 18.07.2015, 11:51
  • 5
    @mykhal Видит man.openbsd.org/ddb, Который опишет, как ввести отладчик ядра в OpenBSD. –  Kusalananda♦ 15.05.2017, 11:14

Ядро предназначено для продолжания бежать несмотря ни на что. Так любой способ вызвать панику ядра взаимодействием с пользователем (кроме преднамеренного вандализма всесильным корнем, как Bruce Ediger в шутку делает предложение, и большинство ядер сегодня, создаются, таким образом, большинство тех розыгрышей не будет работать во-первых), чрезвычайно серьезная ошибка, которая исправить быстро.

8
27.01.2020, 19:32
  • 1
    Ну, нет никакого большого использования ядра, когда система была полностью заморожена non-sudoing пользователем, который дал команду в сходстве :(){ :|:& };:. –  Desmond Hume 27.02.2013, 01:27
  • 2
    @DesmondHume хорошая установка не отказывает из-за слишком многих процессов. Загляните к /etc/security/limits.conf файл. –  Vreality 27.02.2013, 03:43

скомпилируйте следующий код в модуль и insmod это, уверенный, что необходимо получить панику:

static int crash_module_init(void)

{
     printf("crash module starting\n");
     int *p = 0;

     printk("%d\n", *p);

     return 0;
}

static void crash_module_exit(void)
{
    printf("crash module exiting\n");
}

module_init(crash_module_init);
module_exit(crash_module_exit);
1
27.01.2020, 19:32
  • 1
    Это вызовет oops, но не паника. –  hellodanylo 07.11.2013, 15:27
mkdir /tmp/kpanic && cd /tmp/kpanic && printf '#include <linux/kernel.h>\n#include <linux/module.h>\nMODULE_LICENSE("GPL");static int8_t* message = "buffer overrun at 0x4ba4c73e73acce54";int init_module(void){panic(message);return 0;}' > kpanic.c && printf 'obj-m += kpanic.o\nall:\n\tmake -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules' > Makefile && make && insmod kpanic.ko

Компилирует модуль, который вызывает сбой ядра, вызывая функцию panic , требуется root, требуется make и gcc

Замените «переполнение буфера по адресу 0x4ba4c73e73acce54» в команде чем-нибудь интересным для большей драматичности.

24
27.01.2020, 19:32

Не знаю, почему об этом раньше не упоминалось...

sudo kill -9 1

Паника с сообщением "пытался убить init".

4
27.01.2020, 19:32

Проще всего зажать 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.

4
27.01.2020, 19:32

Попробуйте это :

dd if=/dev/urandom of=/proc/sysrq-trigger 


Это вызвало у меня очень быструю панику ядра, но я не уверен, насколько безопасен этот процесс, потому что я сделал это на живой установке Ubuntu. Но ядро ​​рассылало мне спам-сообщения об ошибках, когда я делал это в чистой терминальной среде.

2
27.01.2020, 19:32

Теги

Похожие вопросы