Владелец хостинга удалил данные 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 — отказали в работе.
с кем не бывало
Однаждый таким легким движением руки грохнул недельную работу коллеги.
Также стоит быть поосторожнее с командой mv =)
Удалил виндовс 3.11. Пришлось под досом сидеть.
Мораль истории - всегда нужно выкачивать бэкапы и держать их на другом сервере/другом дата центре.
Комментарий недоступен
Тот момент, когда переходишь на новость из вк... И невольно начинаешь думать, что речь о хостере tj
Да хватит это говно перепощивать, то на opennet попало, то здесь. Это фейк. TJournal, вы же вроде всегда славились проверкой фактов, а?
Во-первых, нет никакого упоминания компании нигде. К этому времени уже бы хоть один клиент написал, что на самом деле это случилось.
Во-вторых, Ansible не даст выполнить команду, если переменная не инициализирована!
В-третьих, как вы писали, rm бы ничего не удалил без --no-preserve-root.
1. Компания не упомянута, чтобы клиентов не потерять.
2. Как я понял, из-за бага в скрипте вместо rm -rf {foo}/{bar} запускалась rm -rf / - в этом варианте Ansible как бы и не участвует.
3. Вот это самое достоверное доказательство. Там задавали несколько вопросов про это - но автор их проигнорировал.
С другой стороны, у него активный акк на нескольких сайтах сети SO.
Может я что не понимаю, но как можно СЛУЧАЙНО запустить такую команду?
Это ж примерно как случайно поставить себе на голову утюг, или что-то в этом роде
Комментарий недоступен
Легко. Достаточно копипастить разные команды из обучающих материалов и запускать их на боевом сервере.
Это может быть банальная опечатка. Закрался лишний пробел и кукареку. Бывало уже...
И почему никто не вспомнил про "программа из одной строчки ни Perl"?
Здравствуйте, это канал об аниме?
Какой адов баян!
Комментарий недоступен
Комментарий удален модератором
Selectel Ltd
Меня терзают смутные сомнения. Маленькая или нет, но 1535 клиентов это много. Вряд ли возможно что у такой компании нет бэкапов на сторонних серварах, которые через тот же rsync синхронизируются. Конечно, если опция --delete-before или after не стоит. И да, как-то глупо для подобных масштабов юзать скрипт с переменными и так далее. Данные в таких случаях редко удаляются, а если и удаляются то удаляется что-то конкретное, что делается вручную и под контролем. Бывают неудачники, но это больше на фейк похоже, чем на фейл какой-то. Масштаб слишком велик, не удивлюсь если это вообще реклама его компании.
Кода? А это разве код?
Код скрипта командной оболочки.
По идее программой типа r-studio не должно составить проблем все восстановить же, да и нужен всего один дополнительный жесткий диск. Восстановить на него данные с первого харда, дальше со второго восстановить на первый и т.д. до последнего.
Лучше вашего метода, только — подорожник! Приложить к стойке и данные вернутся!
Вы такой простой)
В комментах автор вопроса пишет, что они наняли фирму для восстановления данных и почти все восстановили.
Бэкапы?
Комментарий удален модератором
Бэкап владельцев? У меня все проекты весят по облакам на разных сервисах. Благо не так много. Но когда занимаешься хостингом, об этом тоже стоит думать.
Ну а так да, бизнесу пришёл конец.
Какой-то профессиональный юмор... Или не юмор...
Запускал на живой системе. Тоже до конца не отработало.
Debian 8 уже предупреждает, перед вводом "rm -rf /". Если хочешь продолжить введи с флагом "rm -rf --no-preserve-root /"
И что за заголовок? "Владелец хостинга удалил данные 1535 своих клиентов одной строчкой кода". Пиздец как сложно удалить данные одной строчкой кода.