Сегодня утром я прочитал сообщение, которое описывает очевидной уязвимость системы Linux. На самом деле это последовательность символов, которая - если запустить из командной строки - создает бесконечный цикл, в результате насыщения блок оперативной памяти и процессора. Так что это не недостаток Linux, но очевидное логическое заблуждение тех, кто бросают строку удар на любой операционной системе, которые предоставляются. Автор поста предлагает, однако, наиболее простым и эффективным способом для преодоления последствий микроскопической, но опасный сценарий.

Возможно, эта статья может быть полезной, чтобы ослабить несколько "апологетических тонах, с которой он хвалит системы стали операционная GNU / Linux: есть последовательность символов, которая несколько, при вводе в терминал, передает всей системы в штопор. Вот нарушителя код:

: () { : | : & };: Как это краткие и загадочные строки могут вызвать такой хаос? На самом деле, что происходит, это вполне нормально и объяснения, для тех, кто грамотности сценарий Баш, выглядит следующим образом: функции в Баш.

Функции в Баш, объявленные с синтаксисом:
nomeFunzione() { comando1; comando2; ... comandoN; } nomeFunzione() { comando1; comando2; ... comandoN; } и вызываются, введя свое имя и в нормальном управления. Так, например, следующий код:
saluta(){ echo "ciao"; };saluta , которые не заявляют функции салютов, он выводит слова Hello на терминале, и ссылаться на него. Нарушитель код вызова функции: (двоеточие).

Ну да, хотя это особенно экзотические юридическое название на Баш функции.

Как вы можете видеть сейчас, в свете этого, функция (когда-то называли) называет себя и перенаправляет его выход на другой вызов сам по себе через трубу (вертикальная черта). Если вы не знаете, трубу, на которую нет необходимости подробно останавливаться на целях объяснения (и на которых имеется достаточно документов, в свою очередь), просто знаю, что они будут открывать параллельно двух команд, которые они появятся, так Код: |: появление в теле функции в два раза и вызывать эту функцию параллельно, что приводит к (двухместный) рекурсии.

Наконец, и помещен в конце команда имеет эффект работать в фоновом режиме.

Сейчас: Когда функция запускается, называет себя дважды параллельно в результате бифуркации (вилки), каждая из двух бифуркации, в свою очередь, распадается, и так далее. Тот факт, что функции работают в фоновом режиме, что обеспечивает terminandone (например, с убить команду), те, которые вы создали (так что две бифуркации и их потомков), не будет прекращено в свою очередь, как это было бы нормально. Это не остановить запуск функции, которая протекает в геометрической прогрессии, в конечном счете насыщения ресурсами (процессор и память), а также от времени в то время как "приходит, замораживание системы.

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

Оригинальное сообщение:

http://www.tuxbay.org/index.php?option=com_content&task=view&id=152&Itemid=1

Отправить эту содержания:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter