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
.