Como posso fazer “rm -rf /” em um alias?

3

Eu quero criar um alias para rm -rf / . Eu sei fazer um alias; O problema é que eu não sei como usar uma sucessão de comandos para fazer um alias com todos eles. Eu quero algo como rm -rf / = echo 'something' , mas apenas quando "/" é usado.

Como posso conseguir isso?

    
por Caranfil Alegzandru 23.11.2016 / 13:05

3 respostas

17

Isso seria muito melhor feito aplicando as permissões apropriadas para impedir que as pessoas excluam as coisas.

Essa abordagem de "segurança" aliasing seria facilmente ignorada, desativando o alias, criando links simbólicos para rm e executando-o dessa maneira, copiando o binário rm ou possivelmente até mesmo executando-o diretamente.

Você deve proteger a sua área de trabalho pressionando Ctrl + Alt + L para bloqueá-la quando deixada desacompanhada.

    
por Amias 23.11.2016 / 13:12
9

Uma simples função bash serve (mas isso pode obviamente ser substituído por um usuário):

rm () { [[  =~ -(rf|fr) &&  = / ]] && echo "whatever" || command rm "$@" ;}

Observe que, mesmo que algum usuário execute rm -rf / , a operação não continuará, pois é necessário inserir a opção --no-preserve-root com rm para remover o diretório raiz recursivamente. (Mas nada impede que alguém faça rm -rf /* ou cd /; rm -rf * pelo caminho)

Mas você deve considerar a implementação de uma boa política de segurança em vez de corrigir materiais sensíveis.

    
por heemayl 23.11.2016 / 13:19
3

O problema real aqui é a segurança do seu sistema. O "ppl" com o qual você trabalha não deve ser capaz de rm -rf / , pois isso requer acesso root - implementar um modelo de segurança melhor evitaria que pessoas incompetentes quebrassem o sistema, além do comando rm (se for uma versão recente ) implementar --no-preserve-root .

    
por Micheal Johnson 23.11.2016 / 17:55

Tags