‘Cara, cadê a firma?’: rapaz ‘deleta’ empresa com linha de código errada
Esse foi um assunto muito falado em Abril desse ano.
“Me desculpe, mas acho que sua companhia está essencialmente morta”, essas foram as palavras que Marco Marsala, dono de uma empresa de serviços de hospedagem, teve que ler quando foi buscar ajuda sobre um erro que ele cometeu.
Ao dar o comando para que absolutamente tudo fosse apagado dos servidores, o rapaz removeu todas as informações de sua companhia e também dos sites de seus clientes. Desesperado, ele tentou conseguir algum tipo de auxílio no fórum Server Fault, que conta com a participação de experts em servidores e programação.
Marsala explicou o que aconteceu depois de executar um código de programação nos computadores da empresa. Em vez de soluções, ele recebeu diversas respostas indicando que ele basicamente havia deletado todas as informações da companhia e dos clientes – e, basicamente, destruiu toda a empresa com uma linha de código errada.
O problema estava em um comando “rm -rf”, um código básico que deleta absolutamente tudo que for indicado. O “rm” ordena que o computador remova algo, o próximo “r” deleta tudo dentro de um diretório específico e o “f” indica que essa ação deve ser forçada, independente de avisos que poderão aparecer.
Quando você junta todos os elementos, como Marsala fez, tudo é deletado. O código, inclusive, é uma espécie de piada nas rodas de programadores e do pessoal da área de computação.
Como ele geralmente é utilizado com a especificação de um diretório que deve ser “zerado”, o problema foi na forma que o rapaz usou o código: ao não especificar qualquer área, o código simplesmente varreu tudo que havia nos computadores.
No post de Marsala, ele descreveu como tudo aconteceu: “Eu toco um provedor de hospedagem com mais ou menos 1.535 clientes e uso o Ansible para automatizar algumas operações que devem rodar em todos os servidores”, explicou. “Na última noite, eu acabei rodando, sem querer e em todos os servidores, um script Bash com um comando rm -rf {foo}/{bar} com essas variáveis indefinidas em função de um bug no código acima dessa linha.”
Até mesmo os backups que foram feitos em caso de uma catástrofe similar foram apagados. “Todos os servidores foram deletados e os backups também, porque o armazenamento remoto foi montado pouco antes pelo mesmo script”. Foi aí que a resposta usada na abertura desta matéria surgiu.
Me desculpe, mas acho que sua companhia está essencialmente morta
“Você talvez tenha uma chance de recuperar tudo se desligar todo o equipamento e entregar seus drives para uma empresa de recuperação de dados extremamente competente – será extremamente caro e possivelmente eles não vão conseguir te ajudar, além de tomar muito tempo”, escreveu um dos companheiros de fórum.
“Você vai falir e não precisa de ajuda técnica – você precisa ligar para o seu advogado”, escreveu um usuário chamado Michael Hampton. Outros posts também não foram nada animadores: “Isso não é apenas azar: é um esquema extremamente malfeito e que foi amplificado por uma completa falta de cuidado”, respondeu outro.
O caso, no entanto, não é o único: algo muito parecido aconteceu dois anos antes e foi reportado no mesmo tópico de Marsala – o acidente mais antigo foi causado por um espaço que não foi identificado pelo programador.