Come evitare 'sudo rm -rf /'

10

Alcune volte ho eseguito accidentalmente il comando sudo rm -rf / .

C'è un modo per impedirmi di eseguire questo comando? Per esempio posso in qualche modo disabilitarlo usando il file sudoers?

    
posta iProgram 15.06.2015 - 15:31
fonte

2 risposte

14

Puoi aggiungere una riga come

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

al tuo file sudoers per impedire l'esecuzione del comando con le opzioni specifiche.

Oppure, se vuoi escludere più comandi, puoi lavorare con gli alias di comando

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

Puoi anche provare a giocare sul sicuro 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

ma ci potrebbero essere altri modi in cui puoi spararti ai piedi con rm quindi stai attento in ogni caso.

Ma tieni presente che tutta la corrispondenza viene eseguita sulla stringa completa del comando, quindi sudo rm -rf /Volumes funzionerebbe ancora (come farebbe cd /; sudo rm -rf . ).

PS: con tutti i mezzi, usa sudo visudo per modificare il file sudoers e MAI modificalo direttamente

PPS: ovviamente non ho provato questo con rm (solo con /bin/echo invece)

    
risposta data 15.06.2015 - 15:56
fonte
6

So che hai formulato la domanda in un modo che mi fa sospettare che tu non voglia sentire questa risposta, ma dovresti davvero rimuovere te stesso dal file sudoers se sei incline a ripetere lo stesso errore più e più volte.

Il problema di fondo è che non hai effettuato l'alias rm per essere spostati nel cestino (che è chiaramente come lo stai usando attualmente e in passato) o altrimenti forzato rm -r a essere forzato in rm -ri

alias rm='/bin/rm -i'

Puoi sempre aggirare l'alias con command rm -rf whatever una volta allenata la tua mente quando la misura è doppia, tagliandola una volta è necessaria per l'utilizzo di rm -rf .

    
risposta data 16.06.2015 - 21:59
fonte

Leggi altre domande sui tag