Quelques fois, j'ai accidentellement exécuté la commande sudo rm -rf /.
Existe-t-il un moyen de m'empêcher d'exécuter cette commande? Par exemple, puis-je le désactiver d'une manière ou d'une autre en utilisant le fichier sudoers?
mais il peut toujours y avoir d'autres façons de se tirer une balle dans le pied, rmalors soyez prudent quand même.
Mais gardez à l'esprit que toutes les correspondances sont effectuées sur la chaîne complète de la commande, donc sudo rm -rf /Volumescela fonctionnerait toujours (comme le ferait cd /; sudo rm -rf .).
PS: par tous les moyens, utilisez sudo visudopour modifier le sudoersfichier et ne le modifiez JAMAIS directement
PPS: Je n'ai évidemment pas testé cela avec rm(uniquement avec à la /bin/echoplace)
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
bmike
6
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 fichier sudoers si vous êtes enclin à faire la même erreur encore et encore.
Le problème sous-jacent est que vous n'avez pas d'alias rmpour être placé dans la corbeille (ce qui est clairement la façon dont vous l'utilisez actuellement et dans le passé) ou autrement contraint rm -rd'être forcé dansrm -ri
alias rm='/bin/rm -i'
Vous pouvez toujours contourner l'alias avec command rm -rf whateverune fois que vous vous êtes entraîné à mesurer deux fois, une seule coupe est nécessaire pour l' rm -rfutilisation.
Merci pour cette astuce. Je pensais créer un compte administrateur caché (pour accéder au terminal uniquement) et un compte standard pour une utilisation normale uniquement. Je pourrais aussi faire en sorte que l'emballage passe à la poubelle. Merci pour cette astuce. Je pense que la prévention de sudo peut être une étape plus sûre. Je vais toujours m'assurer que je peux y accéder en me connectant à l'administrateur caché.
iProgram
N'ont pas marqué est comme répondu cependant car il ne répond pas à ce qui précède. C'est
sudo rm -rf / Applications/chess.app
Remarquez l'espace entre le / et le A. Voilà commentRéponses:
Vous pouvez ajouter une ligne comme
dans votre
sudoers
fichier pour empêcher l'exécution de la commande avec les options spécifiques.Ou, si vous souhaitez exclure plusieurs commandes, vous pouvez travailler avec des alias de commande
Vous pouvez également essayer de jouer en toute sécurité en utilisant
mais il peut toujours y avoir d'autres façons de se tirer une balle dans le pied,
rm
alors soyez prudent quand même.Mais gardez à l'esprit que toutes les correspondances sont effectuées sur la chaîne complète de la commande, donc
sudo rm -rf /Volumes
cela fonctionnerait toujours (comme le feraitcd /; sudo rm -rf .
).PS: par tous les moyens, utilisez
sudo visudo
pour modifier lesudoers
fichier et ne le modifiez JAMAIS directementPPS: Je n'ai évidemment pas testé cela avec
rm
(uniquement avec à la/bin/echo
place)la source
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 fichier sudoers si vous êtes enclin à faire la même erreur encore et encore.
Le problème sous-jacent est que vous n'avez pas d'alias
rm
pour être placé dans la corbeille (ce qui est clairement la façon dont vous l'utilisez actuellement et dans le passé) ou autrement contraintrm -r
d'être forcé dansrm -ri
Vous pouvez toujours contourner l'alias avec
command rm -rf whatever
une fois que vous vous êtes entraîné à mesurer deux fois, une seule coupe est nécessaire pour l'rm -rf
utilisation.la source