Владелец хостинга удалил данные 1535 своих клиентов одной строчкой кода Статьи редакции

Обновлено: 15 апреля Марсала рассказал в интервью итальянскому изданию Repubblica, что его история была выдумкой.

Руководитель небольшой хостинговой компании по имени Марко Марсала (Marco Marsala) рассказал, как уничтожил данные всех своих клиентов, по ошибке запустив на всех серверах скрипт «rm -rf /». На историю обратило внимание издание The Independent.

10 апреля Марсала спросил совета на форуме Server Vault, что делать в его ситуации. По его словам, он возглавляет хостинг-провайдер, в котором обслуживается 1535 клиентов. Для автоматизации управления конфигурациями серверов Марсала использовал систему Ansible, и 9 апреля случайно запустил через неё Bash-скрипт «rm -rf {foo}/{bar}» на всех серверах, не задав переменные foo и bar.

Марсала заявил, что в результате всего данные с его серверов оказались удалены, а вместе с ними уничтожились и бэкапы, потому что этот же скрипт использовался для их техобслуживания. Сисадмин поинтересовался, сможет ли он оперативно восстановить данные.

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

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

При этом некоторые комментаторы засомневались в том, могла ли команда «rm -rf /» запуститься без оператора --no-preserve-root. На форуме Slashdot также обратили внимание, что «rm -rf» не уничтожает блоки данных на жёстких дисках, а помечает их как пустые, и теоретически информацию можно было бы спасти, если поверх неё не перезаписали ничего нового.

Где работает Марко Марсала и действительно ли он является владельцем хостинг-провайдера, неизвестно. TJ не удалось найти пользователей с таким именем и описанием на Фейсбуке и в LinkedIn.

Команда «rm -rf /» в Bash означает рекурсивное удаление папок и файлов, игнорируя различные предупреждения, которые выдаёт командная строка. В обычном случае команда касается только доступных пользователю файлов, однако если её запускает суперпользователь с root-доступом (как, вероятно, было в случае Марсалы), стираются вообще все доступные файлы в системе. Среди программистов и системных администраторов эта команда считается синонимом максимального разрушения, которое можно устроить в ОС.

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

0
54 комментария
Написать комментарий...
Передовой паркур

с кем не бывало

Ответить
Развернуть ветку
Октябрьский корабль

Однаждый таким легким движением руки грохнул недельную работу коллеги.

Также стоит быть поосторожнее с командой mv =)

Ответить
Развернуть ветку
2 комментария
Мокрый глобус

Удалил виндовс 3.11. Пришлось под досом сидеть.

Ответить
Развернуть ветку
Капитальный мангал

Мораль истории - всегда нужно выкачивать бэкапы и держать их на другом сервере/другом дата центре.

Ответить
Развернуть ветку
Похожий шмель

Комментарий недоступен

Ответить
Развернуть ветку
Капитальный мангал
Ответить
Развернуть ветку
Всеобщий турник

Тот момент, когда переходишь на новость из вк... И невольно начинаешь думать, что речь о хостере tj

Ответить
Развернуть ветку
Мягкий Денис

Да хватит это говно перепощивать, то на opennet попало, то здесь. Это фейк. TJournal, вы же вроде всегда славились проверкой фактов, а?

Во-первых, нет никакого упоминания компании нигде. К этому времени уже бы хоть один клиент написал, что на самом деле это случилось.
Во-вторых, Ansible не даст выполнить команду, если переменная не инициализирована!
В-третьих, как вы писали, rm бы ничего не удалил без --no-preserve-root.

Ответить
Развернуть ветку
Мокрый глобус

1. Компания не упомянута, чтобы клиентов не потерять.
2. Как я понял, из-за бага в скрипте вместо rm -rf {foo}/{bar} запускалась rm -rf / - в этом варианте Ansible как бы и не участвует.
3. Вот это самое достоверное доказательство. Там задавали несколько вопросов про это - но автор их проигнорировал.

С другой стороны, у него активный акк на нескольких сайтах сети SO.

Ответить
Развернуть ветку
3 комментария
Былой турник

Может я что не понимаю, но как можно СЛУЧАЙНО запустить такую команду?

Это ж примерно как случайно поставить себе на голову утюг, или что-то в этом роде

Ответить
Развернуть ветку
Надежный чайник

Комментарий недоступен

Ответить
Развернуть ветку
Капитальный мангал

Легко. Достаточно копипастить разные команды из обучающих материалов и запускать их на боевом сервере.

Ответить
Развернуть ветку
Неясный кот

Это может быть банальная опечатка. Закрался лишний пробел и кукареку. Бывало уже...

Ответить
Развернуть ветку
Ориентированный дым

И почему никто не вспомнил про "программа из одной строчки ни Perl"?

Ответить
Развернуть ветку
Вторичный файл

Здравствуйте, это канал об аниме?

Ответить
Развернуть ветку
2 комментария
Последовательный фитиль

Какой адов баян!

Ответить
Развернуть ветку
3 комментария
Похожий шмель

Комментарий недоступен

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
1 комментарий
Социальный американец

Selectel Ltd

Ответить
Развернуть ветку
4 комментария
Элементарный Петя

Меня терзают смутные сомнения. Маленькая или нет, но 1535 клиентов это много. Вряд ли возможно что у такой компании нет бэкапов на сторонних серварах, которые через тот же rsync синхронизируются. Конечно, если опция --delete-before или after не стоит. И да, как-то глупо для подобных масштабов юзать скрипт с переменными и так далее. Данные в таких случаях редко удаляются, а если и удаляются то удаляется что-то конкретное, что делается вручную и под контролем. Бывают неудачники, но это больше на фейк похоже, чем на фейл какой-то. Масштаб слишком велик, не удивлюсь если это вообще реклама его компании.

Ответить
Развернуть ветку
Нелепый томагавк_два

Кода? А это разве код?

Ответить
Развернуть ветку
Социальный Орзэмэс

Код скрипта командной оболочки.

Ответить
Развернуть ветку
Стройный спрей

По идее программой типа r-studio не должно составить проблем все восстановить же, да и нужен всего один дополнительный жесткий диск. Восстановить на него данные с первого харда, дальше со второго восстановить на первый и т.д. до последнего.

Ответить
Развернуть ветку
Транспортный нос

Лучше вашего метода, только — подорожник! Приложить к стойке и данные вернутся!

Ответить
Развернуть ветку
Искусственный паук например

Вы такой простой)

Ответить
Развернуть ветку
Мокрый глобус

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

Ответить
Развернуть ветку
Широкий меч

Бэкапы?

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
9 комментариев
Скучный хот-дог

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

Ну а так да, бизнесу пришёл конец.

Ответить
Развернуть ветку
Национальный вентилятор

Какой-то профессиональный юмор... Или не юмор...

Ответить
Развернуть ветку
Крестьянский Мурод

Запускал на живой системе. Тоже до конца не отработало.

Ответить
Развернуть ветку
Отличный татарин

Debian 8 уже предупреждает, перед вводом "rm -rf /". Если хочешь продолжить введи с флагом "rm -rf --no-preserve-root /"

Ответить
Развернуть ветку
Элементарный Петя

И что за заголовок? "Владелец хостинга удалил данные 1535 своих клиентов одной строчкой кода". Пиздец как сложно удалить данные одной строчкой кода.

Ответить
Развернуть ветку
Растительный кран
Ответить
Развернуть ветку
Читать все 54 комментария
null