TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #59 6.01K
Я уверен что почти все из вас встречались с таким комментарием: выполни эту команду sudo rm -rf /* и твоя проблема решится.

Но мало кто знает, что эта команда называется «Патч Бармина».

Патч Бармина — шутка, описывающая универсальное средство устранения любых неполадок в Unix-системах. Сам «патч» состоит из одной строки, которую следует набрать в консоли root.

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

Давай разберем как работает «Патч Бармина»

По умолчанию утилита rm проверяет аргументы командной строки на соответствие корневой директории. Если в rm передан аргумент /, то выведется предупреждение. Но с помощью опции --no-preserve-root это предупреждение можно отключить.

В случае команды rm -rf /* аргументами будет содержимое корневой директории. Оболочка bash передаст команде rm список. Чтобы посмотреть, что будет в списке, выполни:

printf '%s\n' /*

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

Достаточно чтобы процессу были доступны чтение/запись/исполнение (rwx) для директории в которой будут удаляться файлы. Ну и чтение/исполнение (r-x) на компоненты пути до этой директории.

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

К примеру этой командой rm -ri /* давай удалим содержимое домашней директории пользователя. Но перед каждым удалением будет задаваться вопрос (ключ -i).

rm: спуститься в защищённый от записи каталог '/boot'?
rm: спуститься в защищённый от записи каталог '/dev'?
rm: спуститься в защищённый от записи каталог '/etc'?
rm: спуститься в защищённый от записи каталог '/home'? y
rm: спуститься в каталог '/home/user'? y
rm: удалить обычный файл '/home/user/.bashrc?

Если мне что-то не нужно удалять, я просто нажимаю Enter, а для положительного ответа набираю «y» и жму Enter.

Также имеется еще одна опция --preserve-root, без аргументов эта опция как раз и включает проверку которую отключает --no-preserve-root. При задании этой опции с аргументом all директории чьи родители находятся на другой файловой системе (то что было смонтировано) — пропускуются. Например домашняя папка пользователя находится на отдельном разделе.

rm -ri --preserve-root=all /*

вывод будет таким:

rm: пропускается '/dev', поскольку он находится на другом устройстве
rm: и действует --preserve-root=all
rm: пропускается '/run', поскольку он находится на другом устройстве
rm: и действует --preserve-root=all
rm: пропускается '/tmp', поскольку он находится на другом устройстве
rm: и действует --preserve-root=all

Какие выводы. Даже если не указывать --no-preserve-root, команда rm может знатно начудить. Всегда гугли/читай, прежде чем бездумно копировать и запускать. Ну и всегда пробегайся глазами по чужим bash скриптам, особенно если эти скрипты дернуты у какого нибудь Васи Нонейма.

На этой прекрасной ноте, жму тебе руку и желаю хорошего дня!

tags: #bash #linux
—
🟢 Подпишись: @bashdays
  • 👍 117
More from @bashdays
  1. Sep 25, 2026ИИ-агент может быть у каждого: создать персонального помощника можно без настройки серверо…
  2. Sep 24, 2026Post #1565
  3. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  4. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  5. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  6. Sep 11, 2026🤖 DevOps в эпоху AI трансформации: что работает уже сейчас! 17 сентября Сбер собирает Dev…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →