Apenas curioso, o que acontece no OS X Maverick se alguém emitir sudo rm -rf /?
Ouvi dizer que os sistemas * nix mais modernos estão protegidos contra essa falha épica.
No interesse da ciência, uma VM morreu para responder a esta pergunta:
testrm:~ admin$ sudo rm -rf /
WARNING:Improper use of the sudo command could lead to data loss
or the deletion of important system files.Please double-check your
typing when using sudo.Type"man sudo"for more information.To proceed, enter your password, or type Ctrl-C to abort.Password:
rm:/dev/fd/0:Operation not supported
rm:/dev/fd/1:Operation not supported
rm:/dev/fd/2:Operation not supported
rm:/dev/fd/3:Not a directory
rm:/dev/fd/4:Bad file descriptor
rm:/dev/fd:Operation not supported
rm:/dev:Resource busy
rm:/home:Resource busy
rm:/net:Resource busy
rm:/private/var/log:Directory not empty
rm:/private/var/run:Directory not empty
rm:/private/var:Directory not empty
rm:/private:Directory not empty
rm:/System/Library:Directory not empty
rm:/System:Directory not empty
rm:/:Is a directory
testrm:~ admin$
Curiosamente, conseguiu. De volta aos 2 dias do Slackware, tentei isso no Linux e depois que ele excluiu as bibliotecas vinculadas dinamicamente que a rm estava usando, falhou.
Por que você conseguiu receber a solicitação no final? Parece /bin/bashque falharia após ser excluído. Ou isso simplesmente não era toda a saída?
0942v8653
4
Tudo o que já está carregado na memória ainda está lá. Além disso, todos os arquivos abertos por um processo ainda estão no disco e o espaço não é recuperado até que, afinal, eles sejam fechados. Portanto, como o bash estava em execução, ele ainda poderia mostrar seu prompt, etc. Mas não seria capaz de carregar nenhum comando, pois todos eles foram embora. Da mesma forma, quando tentei isso em um terminal no Mac, em vez de fazer um ssh in, o localizador e a interface do usuário ainda estavam lá ... Mas sempre que um programa tentava abrir um arquivo, ele falhava.
Alan Shutko
Isso também responde à pergunta que eu tinha "Qual é o último diretório a ser removido durante 'rm -rf /'?", O que parece ser /. Portanto, se eu clicar em <ctrl-c> a tempo, esse é o local para armazenar meus poucos arquivos "obrigatórios". Alguma idéia de como seria o SO e / ou versão específica?
jalanb
1
@jalanb Essa não é uma versão específica, pois todos os arquivos em / precisam ser excluídos antes / podem ser excluídos. No entanto, se você estiver armazenando esses arquivos "obrigatórios", provavelmente desejará dar um nome a eles no final do alfabeto, conforme a ordem alfabética.
0942v8653
8
A curiosidade matou o gato. Em hipótese alguma, tente fazer isso em casa.</disclaimer>
Não há proteções. A --root-protectopção foi introduzida no GNU rm( ativada por padrão).
A página de manual do rm para 10.9 não menciona nada disso. Depois de inserir sua senha, tudo se foi. Espero que você tenha se lembrado hoje que é o Dia Internacional do Backup (é sempre o Dia Internacional do Backup).
Respostas:
No interesse da ciência, uma VM morreu para responder a esta pergunta:
Curiosamente, conseguiu. De volta aos 2 dias do Slackware, tentei isso no Linux e depois que ele excluiu as bibliotecas vinculadas dinamicamente que a rm estava usando, falhou.
fonte
/bin/bash
que falharia após ser excluído. Ou isso simplesmente não era toda a saída?/
. Portanto, se eu clicar em <ctrl-c> a tempo, esse é o local para armazenar meus poucos arquivos "obrigatórios". Alguma idéia de como seria o SO e / ou versão específica?A curiosidade matou o gato. Em hipótese alguma, tente fazer isso em casa.
</disclaimer>
Não há proteções. A
--root-protect
opção foi introduzida no GNUrm
( ativada por padrão).A página de manual do rm para 10.9 não menciona nada disso. Depois de inserir sua senha, tudo se foi. Espero que você tenha se lembrado hoje que é o Dia Internacional do Backup (é sempre o Dia Internacional do Backup).
fonte