Автор Гілка: Завалити Linux одним рядком в bash  (Прочитано 2345 раз)

zzandy

  • Гість
Шановне товариство, є питання. Я якось натрапив на рецепт як можно покласти Linux однією строкою в баш. Тепер не можу віднайти той рецепт. Рядок накшталт такого ((){}|{{|}}).
Може хто знає про це?


Відсутній 235

  • Кореспондент
  • ***
  • дописів: 238
  • Карма: +0/-0
Re: Завалити Linux одним рядком в bash
« Відповідей #1 : 2006-08-01 18:28:01 »
ггг  :D

у мене чистосердечне враження що часи він95/98(XP) минули. Невже так сильно потрібно підтримувати міфічність. Та ще й в лінуксі?
(вибачай, ну просто не вірю)
« Змінено: 2006-08-01 18:28:21 від uran »
Олександр Приймак |  Google Web Toolkit

zzandy

  • Гість
Re: Завалити Linux одним рядком в bash
« Відповідей #2 : 2006-08-01 18:51:48 »
Ніякої міфічності. Просто баш починає викликати підпроцеси з такою швидкістю, з якою може. Я в себе запускав - ефект сто відсотковий.
« Змінено: 2006-08-01 18:57:18 від zzandy »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Завалити Linux одним рядком в bash
« Відповідей #3 : 2006-08-01 22:27:27 »
Я теж таке бачив десь на братньому білоруському форумі(:)).
Як там було - не пам'ятаю, але ось мій варіант.
_(){(_)& (_)&};_
Тільки що тестовано. Через 15 секунд у системи кінчаються процеси - починає видавати:
bash: fork - resource temporarily unavailable
Потім повний ступор. Консолі не перемикаються, CAD не діє, kernel panic немає. Запускалося як звичайний користувач, до групи root не належу.

Як воно працює? Декларує функцію з ім'ям `_', яка викликає сама себе два рази як окремий(дужки навколо) фоновий(&) процес. А потім викликає її(_ в кінці). І гаплик. Кількість процесів, створених даною командою дорівнює 2^n, причому n росте кожну згаяну адміністратором наносекунду :).

Здається, ядро дозволяє лімітувати користувачів на кількість процесів та використовувану ними пам'ять?.. На багатокористувацьких серверних машинах це може бути потрібним...
« Змінено: 2006-08-02 00:54:41 від ISBear »

Відсутній 235

  • Кореспондент
  • ***
  • дописів: 238
  • Карма: +0/-0
Re: Завалити Linux одним рядком в bash
« Відповідей #4 : 2006-08-02 01:35:53 »
так заїдання всіх ресурсів - це не чисто "завалити" лінкус, це просто DoS. Лімітування користувацьких ресурсів доступне практично по всім параметрам, й такий DoS дійсно можливо заблокувати.

Потрібно взяти постійне обмеження ресурсів всім підряд на замітку  ;)
Олександр Приймак |  Google Web Toolkit

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
Re: Завалити Linux одним рядком в bash
« Відповідей #5 : 2006-08-02 12:41:53 »
Зробив
_(){(_)&ls&};_
навіть після закриття консолі шурувала собака, але завершилась після виходу з користувача...
набрав:
_(){(_)& (echo I am started)};_

-- повний ханибабай - не завершилось після виходу з користувача, на щастя, перезавантаження допомогло ;)

Заліталка - FC3
В цьому випадку хоч зайва пам'ять не жерлась... Таки обмеження максимальної пам'яті для користувача - дійсно актувально...
http://linux.org.ua/cgi-bin/yabb/YaBB.pl?num=1149085968
« Змінено: 2006-08-02 12:49:45 від serg_ik »
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній PAL

  • Графоман
  • ****
  • дописів: 317
  • Карма: +0/-0
  • Just linux admin
Re: Завалити Linux одним рядком в bash
« Відповідей #6 : 2006-08-03 22:04:20 »
А у FC3 хіба pam_limit за замовчуванням не ввімкнено?
Та й ядро має ліміти на користувача на форки.

Звичайно, якщо машина слабенька, то може й не потягнути усе, доки ліміти скінчаться

Відсутній Nickispeaki

  • Дописувач
  • **
  • дописів: 84
  • Карма: +0/-0
  • Бог поможе! ;-)
Re: Завалити Linux одним рядком в bash
« Відповідей #7 : 2007-01-29 03:24:53 »
Зробив
_(){(_)&ls&};_
навіть після закриття консолі шурувала собака, але завершилась після виходу з користувача...
набрав:
_(){(_)& (echo I am started)};_

-- повний ханибабай - не завершилось після виходу з користувача, на щастя, перезавантаження допомогло ;)

http://linux.org.ua/cgi-bin/yabb/YaBB.pl?num=1149085968

дивно! у мене ніяких зависань!! от зараз воно собі хрюкає у фоні. О! баш вилетів! а система навіть не підгальмовує!  8-)
Стану досконалим! :-)