Офтоп
Никита Лихачёв

Владелец хостинга удалил данные 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 — отказали в работе.