Поиск по сайту:

Не запускайте эти 5 команд Linux – вот почему

Хотите сохранить свою систему? Любой ценой избегайте запуска этих команд Linux.

Как однажды сказал Терри Ламберт, разработчик Unix, прародителя Linux: «Работа Unix не состоит в том, чтобы не дать вам прострелить себе ногу. самый эффективный способ, который он знает».

Именно так работают и Linux, и Unix.

Вам не придется об этом беспокоиться, если вы используете графические приложения Linux на настольных компьютерах, такие как GNOME, KDE или Cinnamon. Эти рабочие столы поставляются с ремнями безопасности и плечевыми ремнями. Вам придется очень постараться, чтобы вывести из строя вашу Linux-машину с помощью графического пользовательского интерфейса.

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

Помните, никогда не пытайтесь использовать эти команды дома, в офисе или в производственной системе.

1. Самое важное: удаление корневой файловой системы Linux.

rm -rf /

Это команда, которую знает каждый администратор Linux (или, во всяком случае, должен знать), и ее следует избегать.

Сам по себе rm очень удобен. Это позволяет удалить даже самые упрямые файлы. Но если вы объедините rm с этими двумя флагами: -r, который вызывает рекурсивное удаление по всем подкаталогам, и -f, который принудительно удаляет файлы только для чтения без подтверждения, вы напрашиваетесь на неприятности.

Если вы запустите его в корневом каталоге /, вы сотрете все данные на всем диске до последней капли.

Хотя это используется в качестве изюминки для шуток об ошибках системного администратора, люди все равно делают это в реальной жизни. Как признался один пользователь: «Одной из моих худших ошибок было случайное нажатие клавиши пробела при вводе rm –r /this/is/my/folder/[ACCIDENTAL_SPACE]*, и, что невероятно, я не осознавал этого даже при нажатии клавиши ввода. ."

В данном случае все в этом каталоге было удалено, поскольку он использовал подстановочный знак «*». Пока, файлы! В оболочке нет корзины, которая могла бы вас спасти.

Большинство современных систем предупреждают вас большими буквами, прежде чем вы совершите эту ошибку. Однако вы можете ввести свою систему в «черную дыру», если вы заняты или отвлекаетесь, стуча по клавиатуре. Я видел, как это делалось, а затем мне пришлось восстанавливать целые системы с ленты (чего делать никогда не хочется, поверьте мне).

2. dd означает уничтожение дисков

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

Я слышал гораздо больше примеров того, как dd наносит ущерб дискам и файлам, чем rm. Это связано с тем, что dd имеет уникальный командный синтаксис. Если память пальцев заставляет вас устанавливать неправильные флаги, вы можете обнаружить, что со своей файловой системой происходят ужасные вещи. Действительно, соучредитель открытого исходного кода и хакер Эрик С. Рэймонд предположил, что синтаксис команд dd, который больше похож на IBM JCL, чем на типичный синтаксис команд Unix/Linux, «явно был шалость».

К сожалению, если это шутка, то это плохая шутка, которая живет дальше. Так, например, команда:

dd if=/dev/zero of=/dev/hda

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

Это может показаться глупым, но /dev/zero имеет реальное применение. Например, вы можете использовать его для очистки неиспользуемого места в разделе с нулями. Это значительно уменьшает размер образа раздела, если вам нужно перенести или создать резервную копию раздела.

Это не обязательно должны быть нули. dd с радостью заменит хорошие данные на вашем диске на плохие любым множеством интересных способов. Эта команда может быть полезной, но она похожа на попытку починить часы кувалдой: быстро, эффективно и разрушительно.

Более современный способ удаления данных с твердотельного накопителя (SSD) — это команда blkdiscard, которая используется для удаления секторов устройства вместе с любыми данными на диске. Неприятности могут вызывать не только старые команды, такие как dd, которым только что исполнилось 50 лет.

3. Процесс-пролифератор:

:(){ :|:& };:

Я знаю, это похоже на опечатку, но эта команда — печально известная вилочная бомба Bash. Это атака типа «отказ в обслуживании» (DoS), которая заполняет таблицу процессов Linux. Точные результаты зависят от настроек системного ограничения и от того, кто его запускает, но слишком часто это приводит к отключению вашего процессора, и единственный способ вернуться — перезагрузить систему.

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

Я видел доверчивых системных администраторов, которые хватали потенциально полезный скрипт с помощью такой команды:

wget https://ImSureThisIsASafe/GreatScript.sh -O- | sh

Эта команда загружает сценарий и отправляет его в оболочку для запуска. Никакой суеты, никакой суеты, правда? Неправильный.

Этот сценарий может быть отравлен вредоносным ПО. Конечно, Linux по умолчанию безопаснее большинства операционных систем, но все может случиться, если вы запустите неизвестный код от имени пользователя root. Опасность заключается не только в злонамеренности; Не менее вредны и потенциальные ошибки автора сценария. Вы можете быть укушены чужим неотлаженным кодом, потому что вы не нашли время, чтобы тщательно его проверить.

4. Разрешение пульверизатора:

chmod -R 777 /

Chmod -R 777 / — это командный эквивалент того, что вы оставляете входную дверь открытой настежь в районе с высоким уровнем преступности. Chmod используется для рекурсивного изменения всех прав доступа к файлам и каталогам, чтобы предоставить всем доступ на чтение, запись и выполнение ко всему в вашей системе. Это мечта хакера и кошмар системного администратора.

Чаще всего такие версии используются, чтобы помочь пользователю запустить программу, которую иначе он не смог бы запустить. Ребята, обычно есть веская причина, по которой кто-то не имеет права запускать программу.

Я вижу, что вариацией этой команды больше всего злоупотребляют в контейнерных приложениях. По умолчанию контейнеры Docker запускаются с ограниченными привилегиями для снижения рисков и повышения безопасности. Но слишком часто ленивые программисты создают контейнеры, в которых пользователь является пользователем root. Как и в случае с командой chmod -R 777, это означает, что все запускается от имени пользователя root, что просто требует проблем с безопасностью.

5. Форматер диска:

mkfs.ext4 /dev/sda

И последнее, но не менее важное: у нас есть mkfs.ext4 /dev/sda. Эта команда форматирует любой диск или раздел, на который вы нацеливаетесь, и создает новую файловую систему ext4. Это все равно что использовать огнемет, чтобы очистить свой стол; это устранит беспорядок, но при этом вы можете потерять несколько важных вещей.

Конечно, иногда хочется отформатировать диск. Проблема в том, что если вы нажмете пальцем на место назначения, скажем, sda2, где хранятся все ваши домашние каталоги, вместо нового SSD-накопителя sda3, вы просто уничтожите свои личные файлы и файлы всех ваших пользователей.

Путь Linux

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

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

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

Статьи по данной тематике