Comment empêcher 'sudo rm -rf /'

Quelques fois j'ai accidentellement exécuté la command sudo rm -rf / .

Existe-t-il une façon de m'empêcher d'exécuter cette command? Par exemple, est-ce que je peux le désactiver dans le file sudoers?

Vous pouvez append une ligne comme

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

à votre file sudoers pour empêcher l'exécution de la command avec les options spécifiques.

Ou, si vous souhaitez exclure plusieurs commands, vous pouvez travailler avec des alias de command

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

Vous pouvez également essayer de le protéger en utilisant

 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 

mais il pourrait y avoir d'autres manières dont vous pouvez vous tuer dans le pied avec rm alors faites attention de toute façon.

Mais gardez à l'esprit que toute correspondance est effectuée sur la string complète de la command, donc sudo rm -rf /Volumes fonctionnerait toujours (comme le serait cd /; sudo rm -rf . ).

PS: Par tous les moyens, utilisez sudo visudo pour éditer le file sudoers et NE JAMAIS l' éditer directement

PPS: Je n'ai évidemment pas testé ceci avec rm (uniquement avec /bin/echo place)

Je sais que vous avez formulé la question d'une manière qui me fait soupçonner que vous ne voulez pas entendre cette réponse, mais vous devriez vraiment vous retirer du file sudoers si vous êtes susceptible de faire la même erreur à plusieurs resockets.

Le problème sous-jacent est que vous n'avez pas alias rm pour être déplacé vers la poubelle (ce qui est clairement comment vous l'utilisez actuellement et dans le passé) ou forcé de rm -r à être forcé dans rm -ri

 alias rm='/bin/rm -i' 

Vous pouvez toujours contourner l'alias avec la command rm -rf whatever fois que vous avez formé votre esprit lorsque la mesure est effectuée deux fois, une fois que vous avez besoin pour l'utilisation de rm -rf .