The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Эксперименты с системой после выполнения rm -rf /

15.06.2014 18:34

В заметке "rm -rf remains" рассказано об эксперименте по изучению системы после выполнения "rm -rf /" под пользователем root (с флагом "--no-preserve-root" для снятия защиты от нечаянно добавленного пробела после корневой директории, реальность возникновения подобных ошибок подтверждена случаем с появлением пробела в строке "rm -rf /usr /lib/nvidia-current/xorg/xorg" в скрипте установки bumblebee). После выполнения команды через ssh остаётся рабочий сеанс bash, который и используется для изучения остаточного состояния системы. Например, через использование встроенных команд bash и /dev/tcp/ удалось загрузить и запустить busybox.

Организуем отправку файлов на внешнем хосте 192.168.1.1:


   $ mkdir $(xxd -p -l 16 /dev/urandom)
   $ cd $_
   $ apt-get download busybox-static
   $ dpkg -x *.deb .
   $ alias encode='{ tr -d \\\\n | sed "s#\\\\(..\\\\)#\\\\\\\\x\\\\1#g"; echo; }'
   $ alias upload='{ xxd -p | encode | nc -q0 -lp 5050; }'
   $ upload < bin/busybox

На хосте с удалёнными данными:


   # cd /
   # alias decode='while read -ru9 line; do printf "$line"; done'
   # alias download='( exec 9<>/dev/tcp/192.168.1.1/5050; decode )'
   # download > busybox

Для установки прав на запуск busybox собрана и загружена простейшая утилита setx c вызовом chmod(), которая активирована через bash-команду enable.

  1. Главная ссылка к новости (http://lambdaops.com/rm-rf-rem...)
Лицензия: CC-BY
Тип: английский / Практикум
Короткая ссылка: https://opennet.ru/40006-bash
Ключевые слова: bash
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (69) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 18:45, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >удалось загрузить и запустить

    Ну и что? Чем это поможет? В морг значит в морг.

     
     
  • 2.7, Michael Shigorin (ok), 19:18, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>удалось загрузить и запустить
    > Ну и что? Чем это поможет? В морг значит в морг.

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

     
     
  • 3.9, A.Stahl (ok), 19:32, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Подобный фокус возможно провернуть без предварительной подготовки для проворачивания такого фокуса?
    Впрочем вряд ли в ядро помнит всё содержимое файловой системы:)
     
     
  • 4.16, хм (?), 20:33, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Впрочем вряд ли в ядро помнит всё содержимое файловой системы:)

    undelete

     
     
  • 5.30, Аноним (-), 22:38, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > undelete

    В рабочем виде есть только для доисторического ext2. Впрочем, пользователи btrfs могут сделать просто откат снапшота. А хотя-бы на последний автоснапшот.

     
     
  • 6.43, хм (?), 23:07, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    extundelete, photorec
     
     
  • 7.49, Аноним (-), 23:21, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > extundelete,

    Повторяю: утилиты undelete работают только с допотопным EXT2, которым в XXI веке мало кто хочет пользоваться в силу тормознутости и отсутствия журнала.

    > photorec

    А это уже инструмент отчаяния. Когда мы отчаялись починить систему сколь-нибудь цивилизовано и выдираем жыпеги путем прямого сканирования диска. Проблема в том что часть жыпегов будет битой (из-за фрагментации) а размер будет с точностью до или блока ФС. Если мы не можем пользоваться услугами ФС для информации о фрагментах - придется сгрызть вот такой кактус. Только кактусы кушают лишь если вокруг пустыня и ничего более питательного как назло не оказалось.

     
     
  • 8.59, хм (?), 00:40, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Повторяй сколько хочешь, не могу тебе запретить К счастью мне это не мешает вос... текст свёрнут, показать
     
     
  • 9.61, Аноним (-), 03:16, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да спору нет - лучше чем ничего Почему же При наличии снапшота - просто взять ... текст свёрнут, показать
     
  • 6.57, Michael Shigorin (ok), 00:01, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> undelete
    > В рабочем виде есть только для доисторического ext2.

    scalpel'ем выковыривал из ext4. (разумеется, есть в alt linux rescue)

     
     
  • 7.68, linux must _RIP__ (?), 07:30, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ну как бы не пропиарить alt ;-) без этого же никак?
     
     
  • 8.70, Аноним (-), 09:06, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    По крайней мере достаточно изящный и тематический пиар И указание на полезную у... текст свёрнут, показать
     
  • 8.76, www2 (??), 18:36, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Глубже копайте Вся новость - повод для того, чтобы можно было попиарить Alt За... текст свёрнут, показать
     
     
  • 9.77, Аноним (-), 20:24, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    для начала узнай что вообще означает PR, потом глупости пиши, оналитег... текст свёрнут, показать
     
     
  • 10.80, Аноним (-), 02:25, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то одна из вещей которых альту лютейше не хватает - это как раз нормально... текст свёрнут, показать
     
     
  • 11.83, Michael Shigorin (ok), 02:37, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот посмотрите при случае en altlinux org rescue -- мне за эту штуку не стыдн... текст свёрнут, показать
     
     
  • 12.86, Аноним (-), 20:19, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел Достаточно своеобразное зрелище В том плане что я таким для себя пол... большой текст свёрнут, показать
     
  • 8.82, Michael Shigorin (ok), 02:33, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Точно так же могу попиарить любую палочку-спасалочку, где оно есть Вы только ко... текст свёрнут, показать
     
     
  • 9.87, Аноним (-), 21:34, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Конфижки чего Ядра Каких-то программ Или просто сферические в вакууме ... текст свёрнут, показать
     
  • 7.69, Дима (??), 08:44, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Есть во всех популярных дистрибутивах.
     
  • 4.17, Аноним (-), 20:48, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Помнит всё, на что остались открытые дескрипторы.
     
     
  • 5.18, A.Stahl (ok), 20:52, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну как нам это поможет если в системе есть лишь busybox и отчаяние?
     
     
  • 6.19, Аноним (-), 20:58, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    /proc/ с запущенными процессами сама по себе не отключится. Оттуда же и доступ к дескрипторам. /proc выживет и после rm -rf /, поскольку является виртуальной.
     
  • 6.20, Аноним (-), 21:00, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну как нам это поможет если в системе есть лишь busybox и
    > отчаяние?

    Если интересно, можно поэкспериментировать на домашнем маршрутизаторе. Прошивка обычно в режиме readonly, потому снести что-либо выполнением rm -rf / можно только до момента перезагрузки. Как раз и будет busybox + ядро.

     
     
  • 7.24, Аноним (-), 22:06, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > только до момента перезагрузки. Как раз и будет busybox + ядро.

    Юзерам openwrt следует проявлять разборчивость. Ибо в случае JFFS он таки R/W. И даже JFFS + Squashfs потребует ребут в рекавери, ибо JFFS таки запомнит что "все снесли".


     
     
  • 8.28, Аноним (-), 22:21, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    на wl500g googlecode com можно делать что угодно Без явной команды ничего на фл... текст свёрнут, показать
     
     
  • 9.31, Аноним (-), 22:40, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Правда радости с этого мало, ибо поддерживает полторы броадкомовских железки Да... текст свёрнут, показать
     
     
  • 10.39, Аноним (-), 22:59, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Концепция полной изоляции не так уж плоха для подобных устройств При отсутствии... текст свёрнут, показать
     
     
  • 11.47, Аноним (-), 23:17, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    С другой стороны, конфигурирование и обновление системы и доустановка софта прев... текст свёрнут, показать
     
  • 7.58, Michael Shigorin (ok), 00:03, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Если интересно, можно поэкспериментировать на домашнем маршрутизаторе.

    Вообще-то для таких экспериментов есть виртуалки и стенды.

     
  • 3.78, Аноним (-), 21:00, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    У меня информация о MBR, LVM и RAID постоянно бэкапится: http://pastebin.com/YE4Y1seE
     
     
  • 4.79, Michael Shigorin (ok), 02:17, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > DIR='/tmp/hdd-info';

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

    mktemp(1) умеет -d, а у Вас получается предсказуемое имя либо race condition между созданием файла и созданием одноименного каталога после его удаления.  В тепличных условиях это неважно, но привычка крайне неудачная.

    Ну и вместо /tmp лучше "${TMPDIR:-/tmp}" какое.

     
  • 2.23, Аноним (-), 22:04, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это тебе никогда не приходилось иметь дело с пустой системой Только представь... большой текст свёрнут, показать
     
     
  • 3.37, Аноним (-), 22:58, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Hardcore edition иногда бывает так что особо-креативные очумелые ручки или особ... большой текст свёрнут, показать
     
     
  • 4.60, KT315 (ok), 01:53, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Красиво расписал)) Практиковались) Обожаю свой программатор MiniPRO :)
     
     
  • 5.63, Аноним (-), 03:56, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А мне FTDIки нравятся Могут изобразить практически что угодно и работают в лину... большой текст свёрнут, показать
     
  • 3.66, Anonym2 (?), 04:44, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Звучит как нечто странно? ХРЕН. Это один из обычных способов зашивки софта
    > в пустые embedded системы. Ведь чипы флеша с фабрики выходят девственно
    > чистыми и там ничего нет, а когда система может сама себе
    > софт вкатить - это снимает уйму проблем типа отдельной фазы программирования
    > чипов на программаторе.

    Таким образом нет никаких сложностей с отдельной фазой программирования чипов. :-)
    программатором... >:-)

     
  • 3.75, XoRe (ok), 16:34, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Звучит как нечто странно?

    Да нет. Всегда так винду устанавливаю :)

     

  • 1.2, maxis11 (ok), 18:45, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >rm -rf /usr /lib/nvidia-current/xorg/xorg

    ох уж этот bumblebee

     
     
  • 2.6, vitalif (ok), 19:14, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +8 +/
    а какие там хорошие комменты на гитхабе были...))))
     
     
  • 3.38, Аноним (-), 22:59, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    почему "были"? Они и сейчас там есть :D

    https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cd

     

  • 1.3, kai3341 (ok), 18:46, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Есть ли жизнь после rm -rf /?
     
     
  • 2.4, fr (??), 18:47, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да просто f надо перестать использовать и сразу легче станет. r тоже не нужен тащем-то.
     
     
  • 3.25, Аноним (-), 22:06, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тогда и rm тебе ни к чему...
     
  • 2.5, fr (??), 18:51, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем комментарий-то удалили?
    -rf - это дурная привычка, которую вбивают в голову неграмотные руководства.
     
     
  • 3.10, Аноним (-), 20:08, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очевидно что ты никогда не пользовался linux. Для начала попробуй удалить не пустой .git каталог.
     

  • 1.8, umbr (ok), 19:25, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    >с флагом "--no-preserve-root"

    - Доктор, когда я делаю вот так, мне больно.
    - Ну так не делайте.

     
  • 1.22, pavlinux (ok), 21:59, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мож я туплю, но rm -rf / уже лет 10-15 не работает. rm -rf /*  - работает, даже без preserve-root
     
     
  • 2.26, Аноним (-), 22:07, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Еще можно dd if=/dev/zero of=/dev/sda (или что там у вас жестким диском). "Быстро, надежно и без хлопот вас похоронит Аэрофлот".
     
  • 2.27, iZEN (ok), 22:11, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Проверил? Точно не работает?
     

  • 1.33, pavlinux (ok), 22:45, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Старые пердуны не делятся, приходиться изобретать велосипеды.
    Поколение пепси открывает книгу баянов!

    Так же читайте в выпуске:

    - chmod without /bin/chmod
    - 1001 вариант команды ls  
    - for i in в каталогах с пробелами.  
    - какой пароль в бубунте
    ....

     
     
  • 2.42, Аноним (-), 23:06, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Знаешь, на фоне рекавери бутлоадера через JTAG - все эти эксперименты вообще полная халява. Там по крайней мере есть уже рабочее ядро, умеющее кучу всего. И даже свой код запускать можно. А когда у тебя только дохлая железка, где процу неоткуда взять первую инструкцию - вот это уже да, trouble on the way.
     
     
  • 3.45, pavlinux (ok), 23:14, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Знаешь, на фоне рекавери бутлоадера через JTAG - все эти эксперименты вообще
    > полная халява. Там по крайней мере есть уже рабочее ядро, умеющее
    > кучу всего. И даже свой код запускать можно. А когда у
    > тебя только дохлая железка, где процу неоткуда взять первую инструкцию -
    > вот это уже да, trouble on the way.

    rm -rf вроде ещё не умеет стирать ROM/PROM и бутлоадеры

     
     
  • 4.52, Аноним (-), 23:25, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > rm -rf вроде ещё не умеет стирать ROM/PROM и бутлоадеры

    dd в mtd с бутлоадером спасет отца русской демократии :)

     
     
  • 5.53, pavlinux (ok), 23:35, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> rm -rf вроде ещё не умеет стирать ROM/PROM и бутлоадеры
    > dd в mtd с бутлоадером спасет отца русской демократии :)

    Есть правильная утилита: fast_erase http://img-fotki.yandex.ru/get/6213/27652091.193/0_6c553_e8a83abf_XL.jpg

     
     
  • 6.62, Аноним (-), 03:44, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    У нее короткий радиус действия применительно к ремотным системам :).
     

  • 1.34, Stax (ok), 22:49, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Однако, трюк с enable -f впечатляет :o
    Раньше никогда не слышал о таком..
     
  • 1.48, Аноним (-), 23:18, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >ls /dev/tcp
    >ls: невозможно получить доступ к /dev/tcp: Нет такого файла или каталога

    а где dev/tcp?

     
     
  • 2.50, pavlinux (ok), 23:23, 15/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>ls /dev/tcp
    >>ls: невозможно получить доступ к /dev/tcp: Нет такого файла или каталога
    > а где dev/tcp?

    Это в bash встроенная фича.


    When executing a command on a /dev/tcp/$host/$port pseudo-device file,
    Bash opens a TCP connection to the associated socket.

    A socket is a communications node associated with a specific I/O port.
    (This is analogous to a hardware socket, or receptacle, for a connecting cable.)
    It permits data transfer between hardware devices on the same machine,
    between machines on the same network, between machines across different networks,
    and, of course, between machines at different locations on the Internet.
    ...

    http://tldp.org/LDP/abs/html/devref1.html




    exec 3<>/dev/tcp/www.opennet.ru/80
    echo -e "GET /openforum/vsluhforumID3/96312.html#50 HTTP/1.0\n\n" >&3
    cat <&3 | html2text



     

  • 1.54, vi (?), 23:37, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Да, высший пилотаж!
    Но говорят, что крокодилы не летают, а если и летают то "низенько-низенько".
    BackUp все исправит, конечно если...
     
  • 1.56, дон Педро (?), 23:50, 15/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Лет 10 назад читал байку, которая намного старше; как админ сделал на rm -rf / на одном из первых серверов(?) с одним из первых юниксов. Ему даже удалось всё восстановить без перезагрузки. Было интересно...
     
     
  • 2.67, Аноним (-), 07:20, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    говорят, древние админы были намного могущественнее нынешних
     
     
  • 3.73, Аноним (-), 12:32, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > говорят, древние админы были намного могущественнее нынешних

    Истинная правда. Нынешние - лишь перхоть на плечах отцов-основателей.

     

  • 1.64, Аноним (-), 04:23, 16/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А у меня система, загруженная HDD USB 3.0, интересно себя ведёт. Всё продолжает работать, но если тыкнуть по панели KDE, она пропадает, если тыкнуть по Konqueror он пропадает. А Firefox работает и показывает все открытые вкладки, но не открывает новые: "превышено время ожидания".
     
     
  • 2.65, Аноним (-), 04:33, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > тыкнуть по Konqueror он пропадает. А Firefox работает и показывает все
    > открытые вкладки, но не открывает новые: "превышено время ожидания".

    Посмотри в dmesg. Вероятно, тебя ждет некоторое количество открытий. Насчет бажных ядер или порушеных файловых систем.

     
     
  • 3.72, Zenitur (ok), 12:22, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я там забыл важную фразу. "Интересно себя ведёт, если вытащить кабель". Я думал что сразу будет чёрный экран, но нет, программы продолжают выполняться.
     
     
  • 4.81, Аноним (-), 02:28, 17/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Я там забыл важную фразу. "Интересно себя ведёт, если вытащить кабель".

    Если тебе отпилить руки - ты тоже себя интересно вести будешь. Ну там например ногами научишься печатать, за отсутствием других вариантов.

     

  • 1.71, arisu (ok), 11:51, 16/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    …а теперь оторвём таракану лапы и хлопнем в ладоши. таракан, как видим, остался на месте. вывод: без лап таракан утрачивает слух.
     
  • 1.85, шпуг (?), 09:12, 17/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В линуксах гораздо безопаснее набирать format c:\
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру