14 Опасных команд терминала Linux

Выполнение команд в терминале Linux является простым и быстрым и, как правило, обеспечивает превосходный опыт по сравнению с использованием графического интерфейса для выполнения той же задачи. Команды предоставляют доступ к функциям, которые недоступны в графическом интерфейсе Linux, но они также могут быть опасными, если вы не знаете, что именно они делают.

В этой статье вы узнаете, каких опасных команд Linux следует избегать и почему.

Не запускайте эти команды, так как некоторые из них могут серьезно повредить вашу систему или файлы, стереть ваши данные без предварительного предупреждения или запроса подтверждения. Все скриншоты, приведенные в руководстве, были сделаны в виртуальной машине.

1. rm -rf / Команда

Команда rm в Linux позволяет удалять файлы и каталоги. Однако в ней нет опции undelete, в результате чего удаленные файлы исчезают навсегда. Это означает, что использование команды rm для окончательного удаления важных системных файлов приведет к нестабильности системы.

Команда выглядит следующим образом:

Выполнение команды rm с флагами -r и -f приводит к рекурсивному удалению по всем подкаталогам. Выполнение команды rm в корневом каталоге / приведет к полному удалению системы.

Некоторые системы Linux выдают предупреждение перед выполнением этой команды, а другие - нет.

2. Команда >/dev/sda

Выполнение команды и добавление к ней >/dev/sda записывает вывод команды в блок /dev/sda, т.е. на жесткий диск. Блок dev/sda содержит данные файловой системы, которые затем заменяются выводом команды, повреждая вашу систему и делая ее невосстановимой.

Синтаксис следующий:

Команда может быть любой командой Linux. Например, выполнение команды shred уничтожает все данные на диске.

3. :(){ :|:& };: Fork Bomb

Команда fork bomb создает функцию под названием : и определяет содержимое функции, заставляя ее выполнять себя и передавать в другой вызов себя. Таким образом, функция выполняется на переднем плане, в то время как тот же процесс выполняется в фоновом режиме. Функция выполняет и повторяет себя многократно, быстро занимая все ваши ресурсы, пока система не замерзнет.

Синтаксис команды fork bomb следующий:

Форк бомба также называется вирусом-кроликом или Wabbit, и это, по сути, DOS-атака. Вы можете защититься от этого типа атаки, ограничив сеанс меньшим количеством процессов.
Выполните команду: ulimit -S -u 5000, чтобы ограничить количество процессов до 5000.

4. Команда > файл

Команда > файл - это сокращение от cat /dev/null > file.

Перенаправление команды в файл может быть очень полезным, но ошибка в синтаксисе команды или неосторожное выполнение команды может привести к стиранию критически важного системного файла.

Команда > file использует функцию перенаправления bash для промывки содержимого файла, очищая его.

Например, выполните:

В результате будет создан пустой конфигурационный файл.

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

5. Команда ^foo^bar

Команда ^foo^bar может быть как полезной, так и опасной. Хотя эта команда экономит время, поскольку позволяет отредактировать ранее выполненную команду и выполнить ее снова, она также может вызвать проблемы, если вы не проверите тщательно внесенные изменения перед ее выполнением.

Выполнение ^foo^bar для редактирования предыдущей команды.

При первом выполнении команды echo в выводе говорится, что команда не найдена из-за опечатки. После выполнения команды ^foo^bar и исправления опечатки команда echo выполняется правильно.

6. mv каталог /dev/null

Еще одна опасная команда, которую можно найти в Интернете, - переместить каталог или файл в /dev/null. В Linux файл /dev/null известен как "черная дыра", поскольку он уничтожает любые данные, которые вы перемещаете в это место.

Однако, поскольку /dev/null - это не каталог, а символьный файл, mv не может перезаписать его в другой каталог. С другой стороны, вы можете переместить туда файл, и он перезапишет содержимое /dev/null.

Например:

После выполнения этой команды /dev/null станет обычным файлом. Опасность этого изменения заключается в том, что /dev/null никогда не должен выводить никаких данных, а теперь это обычный файл. Неправильная конфигурация может привести к тому, что в системные файлы будут вставляться случайные данные, что приведет к поломке системы.

7. wget http://url -O-|sh

Команда wget позволяет загружать файлы в терминале. Однако команда может указать wget загрузить скрипт из вредоносного источника и выполнить его с помощью sh.

Всегда обращайте внимание на адрес пакета или файла, который вы скачиваете, и убедитесь, что это надежный источник, иначе вы рискуете заразить свою систему.

8. crontab -r

Команда crontab помогает автоматизировать повседневные задачи. Однако все команды и инструкции хранятся в одном файле crontab, который можно удалить, указав флаг -r. Это может произойти по ошибке, когда вы хотите указать флаг -e и случайно вводите -r. Остерегайтесь, потому что перед удалением файла нет подсказки "да/нет".

Обязательно создайте резервную копию файла crontab, так как после его удаления не так много вариантов восстановления.

9. history | sh

Команда history | sh может быть опасной, поскольку она выполняет все команды из журнала команд, которые вы уже выполняли. Это действие может привести к нестабильности системы и повторному выполнению команд, которые вы не хотели выполнять.

10. dd if=/dev/zero of=/dev/sda

Команда dd дает системе команду записать данные на физические диски. Источник данных определяется параметром if, который может быть случайным of, если вы хотите записать в блок случайные данные. Параметр if также может быть нулевым, если вы хотите обнулить жесткий диск. Любой из вариантов удаляет ОС с диска.

Например:

Выполнение приведенной выше команды заполнит жесткий диск случайными данными, что приведет к сбою системы.

11. mkfs.ext3 /dev/sda

Команда mkfs создает новую файловую систему на указанном устройстве. Выполнение mkfs может быть опасным, если вы не создали резервную копию данных перед выполнением команды. Она форматирует указанный раздел/жесткий диск, полностью стирая с него все данные.

Хотя форматирование разделов диска полезно, форматирование всего жесткого диска (например, /dev/sda) оставляет систему без возможности восстановления.

В следующем примере mkfs создает новую файловую систему ext.3 после форматирования всего жесткого диска:

Поскольку команда форматирует весь жесткий диск для создания новой файловой системы, система больше не загружается и выдает следующую ошибку:

В зависимости от ваших предпочтений, вы также можете указать mkfs создать другую файловую систему, например ext4. Вы также можете выбрать форматирование одного раздела или другого жесткого диска, указанного вместо /dev/sda:

В приведенном выше примере мы дали команду mkfs создать файловую систему ext4 на первом разделе первого жесткого диска.

12. gunzip untrusted.gz

Распаковка недоверенного архива может оказаться zip-бомбой, также известной как бомба декомпрессии. zip-бомба - это вредоносный файл, который атакует систему, пытающуюся его прочитать. При распаковке файл занимает много места на диске, что может оказаться фатальным для многих системных служб.

Поэтому лучше быть осторожным при работе с архивами из ненадежных источников, главным образом потому, что zip-бомба - один из самых старых вредоносных файлов в Интернете.

13. Удалите Python

Прежде чем вы задумаетесь об удалении старой версии Python из вашей системы Linux, имейте в виду, что для правильной работы системы требуется рабочая установка python2. Удаление стандартной версии Python на Ubuntu приводит к тому, что графический диспетчер, используемый для входа в систему, не работает, и вы получаете блокировку системы.

Однако, если вы знаете, что делаете, вы можете удалить Python2.x.x и все его зависимости, выполнив команду:

14. chmod -R 777 /

Linux - многопользовательская система, и команда chmod позволяет изменять разрешения файлов для настройки доступа пользователей к определенному файлу или каталогу.

Однако chmod может рекурсивно изменить разрешения всех ваших файлов:

Приведенная выше команда позволяет всем пользователям читать, писать и выполнять все файлы в системе, что ставит под угрозу безопасность. Кроме того, некоторые системы могут работать со сбоями, если разрешения слишком открыты и не позволяют системе загрузиться.

Заключение

Теперь вы знаете, какие опасные команды Linux не следует запускать в системе Linux или на рабочем сервере. Вообще не рекомендуется запускать неизвестные команды или загружать файлы из неизвестных источников.

Хотя существуют способы восстановления потерянных данных, это часто хлопотный процесс, который не гарантирует успеха.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий