Como evitar 'sudo rm -rf /'


10

Algumas vezes eu executei o comando acidentalmente sudo rm -rf /.

Existe uma maneira de me impedir de executar este comando? Por exemplo, posso de alguma forma desabilitá-lo usando o arquivo sudoers?


2
Como você acidentalmente digita esse comando e o executa?
Fnord_ix 19/06/2015

Se eu digitar um comando como este. sudo rm -rf / Applications/chess.appObserve o espaço entre o / e A. É assim que
iProgram

Respostas:


14

Você pode adicionar uma linha como

%admin ALL = !/bin/rm -rf /

para o seu sudoersarquivo para impedir a execução do comando com as opções específicas.

Ou, se você quiser excluir vários comandos, poderá trabalhar com aliases de comando

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS

Você também pode tentar jogar pelo seguro usando

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /, /bin/rm / *, /bin/rm * /, /bin/rm -rf / *, /bin/rm -rf * /, /bin/rm -fr / *, /bin/rm -fr* /
%admin ALL=!DANGEROUS_CMNDS

mas ainda pode haver outras maneiras pelas quais você pode dar um tiro no próprio pé, rmportanto, tenha cuidado .

Mas lembre-se de que toda a correspondência é feita em toda a cadeia de comando, portanto sudo rm -rf /Volumes, ainda funcionaria (como seria cd /; sudo rm -rf .).

PS: Por todos os meios, use sudo visudopara editar o sudoersarquivo e NUNCA editá-lo diretamente

PPS: Eu obviamente não testei isso com rm(apenas com /bin/echo)


Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
bmike

6

Sei que você formulou a pergunta de uma maneira que me faz suspeitar que não quer ouvir essa resposta, mas você realmente deve se retirar do arquivo sudoers se estiver propenso a cometer o mesmo erro repetidamente.

O problema subjacente é que você não usou o alias rmpara ser movido para o lixo (que é claramente como está sendo usado atualmente e no passado) ou forçado rm -ra ser forçado arm -ri

alias rm='/bin/rm -i'

Você sempre pode contornar o pseudônimo command rm -rf whateverdepois de treinar sua mente quando medir duas vezes, cortar uma vez é necessário para rm -rfuso.


Obrigado por essa dica. Eu estava pensando em criar uma conta de administrador oculta (apenas para acessar o terminal) e uma conta padrão apenas para uso normal. Eu também poderia fazer o invólucro passar para o lixo. Obrigado por essa dica. Eu acho que prevenir o sudo pode ser um passo mais seguro. Ainda terei certeza de que posso acessá-lo entrando no administrador oculto.
IProgram

Não marcado é como respondido, uma vez que não responde ao acima. No entanto, este ainda é um bom conselho
iProgram
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.