Je me suis souvent demandé jusqu'où irait le système si vous couriez rm -rf /
. Je doute que le système d'exploitation puisse s'effacer lui-même (?)
Question bonus : après que la commande a été exécutée, sera rm
-t-il supprimé?
Mise à jour: J'ai testé cela dans quelques distributions Unix principales utilisant VirtualBox et les réponses décrivent exactement ce qui se passe. Si les paramètres corrects sont fournis, rm supprimera tous les bits physiques de données sur le disque. Cependant, j'ai rencontré des problèmes lorsque j'utilisais une version de rm autre que celle de GNU. Par exemple, je pense que BusyBox a sa propre version et ne vous permet pas de supprimer autant que vous le pouvez potentiellement.
Cette question était une question de super utilisateur de la semaine .
Lisez l' entrée de blog du 7 juillet 2011 pour plus de détails ou soumettez votre propre question de la semaine.
la source
sudo rm -rf /
sur tinycore / microcore Linux et il semble que le système d'exploitation protège plusieurs répertoires (/ sys et autres) de la suppression.rm -f /bin/rm
une fois. Malheureusement, cela a fonctionné et j'ai passé l'heure suivante à récupérer la bonne version derm
GNU Coreutils.Réponses:
Si vous
rm
utilisez des coreutils GNU (le plus probablement si c'est une distribution Linux normale),rm -rf /
la protection intégrée refusera (selon la page de manuel et Wikipedia, je n'ai pas essayé cela).Vous pouvez remplacer cette protection avec
--no-preserve-root
.rm
supprimera ensuite tout ce qui est possible sans s’arrêter après avoir tenté de supprimer chaque fichier. Bien sûr, cela ne supprimera pas les systèmes de fichiers virtuels comme/proc
et/sys
, mais ce n'est pas pertinent, cela supprimera tout sur votre disque.Une fois la commande terminée, votre disque sera vidé, y compris le système d'exploitation. Le noyau et les processus actuels continueront de s'exécuter à partir de la mémoire, mais de nombreux processus mourront car ils ne pourront pas accéder à certains fichiers. Le système d'exploitation ne pourra pas démarrer la prochaine fois.
la source
--no-preserve-root
parce que ce n'est généralement pas mentionné.Pour ceux qui aiment faire ce genre de choses visuellement tout en écoutant de la musique techno.
Exécution de rmrf sur Linux (vidéo)
Points bonus si vous pouvez nommer les processus au moment où ils commencent à mourir.
la source
Mettre en place une VM et essayer de vous amuser?
Cela ira assez loin ... si vous utilisez une interface graphique, vous aurez peut-être du plaisir à constater que les choses se dégradent plus visiblement. (les icônes sur les menus cessent de se charger, etc.)
Si vous le laissez partir, le système d'exploitation sera quasiment au-delà de la récupération, mais vous pourrez peut-être récupérer des données facilement.
De toute façon, vous voudrez faire une réinstallation du système d'exploitation.
la source
Eh bien, l'essayer sur http://bellard.org/jslinux/ produit:
la source
Je me souviens de cela
alt.sysadmin.recovery
, jadis, quand il n’existait rien/proc
, et qu’il/dev
s’agissait simplement d’un répertoire contenant des entrées pour un tas d’inodes inhabituels ...... mais sur certaines variantes d'Unix (si je me souviens bien, c'est HP-UX, mais cela pourrait être totalement faux), vous ne pouviez pas supprimer la dernière entrée de répertoire d'un programme en cours d'exécution. (Bibliothèques partagées? Qu'est-ce que c'est?)
Sur ces systèmes, si vous avez commencé un en mode de maintenance (donc rien ne fonctionnait , mais votre coquille, même pas
init
, et aucun système de fichiers secondaires ont été montés) et neexec /bin/rm -rf /
, vous retrouverez avec un système de fichiers racine complètement vide , sauf que/bin
et/bin/rm
serait survivre.Les habitants du monastère effrayant du diable ont estimé que cela était approprié et approprié.
la source
rm -rf /
ne devrait pas être autorisé sur les implémentations récentes car il a été suggéré que cela violait la norme POSIX:"
rm -rf /
" protection sur le blog Oraclela source
/foo/..
même si vous n'êtes pas dans/foo
. Il ne spécifie pas que vous n'êtes pas autorisé à supprimer le répertoire actuel (par exemplerm -r `pwd`
) ou le parent du répertoire actuel.Un point que je n’ai vu n’avait pas été fait par qui que ce soit: les fichiers actuellement ouverts (par exemple, rm lui-même), même s'ils ont été supprimés, ne disparaîtront pas du lecteur tant qu’ils ne seront pas fermés.
la source
rm
va se retirer de la fs - le programme est complètement chargé en mémoire, pas le fichierPour l'avoir essayé une fois (sur un serveur qui me fait chier), connecté en tant que root, en terminal, vous perdrez presque tout. La seule chose qui ne sera pas effacée sera seulement le processus qui était essentiel pour le système d'exploitation.
la source
/boot
,/sbin
,/etc
,/bin
,/vmlinuz
? Bam, parti. Bonne chance pour démarrer sans ceux-ci - en fait, bonne chance pour ne rien faire une fois la suppression terminée.chmod -fR 777 /
est nocif car il désactive les bits setuid et setgid.Jusqu'où vous pouvez aller, cela dépend essentiellement des distributions Unix / Linux spécifiques.
Mais pour répondre à votre question de base, oui - la
rm
commande serait supprimée avec elle, ainsi que toute autre commande standard dans les/bin
autres dossiers.Voici le test simple que j'ai effectué dans Linux Ubuntu 15.04 en utilisant VM.
Initialiser la machine virtuelle via
vagrant
:Ensuite, lorsque vous essayez de supprimer tous les fichiers de manière standard, cela ne vous permet pas:
Alors essayons
--no-preserve-root
. Vérifiez toujours que vous êtes connecté à la machine virtuelle (afin que vous ayezvagrant@vagrant-ubuntu-vivid-64:~$
), puis exécutez (n'essayez pas cela à la maison):Après cela, il retourne à l'invite du shell comme si rien ne s'était passé, mais vous ne pouvez plus exécuter aucune commande, mis à part quelques fonctions intégrées
kill
, de sorte que vous puissiez terminer votre travail et tuer votre session :)Par exemple:
Donc , il à peu près tout enlevé, y compris
rm
,ls
et toutes les autres commandes, mais vous êtes connecté. Certains dossiers spéciaux n'ont pas été supprimés, tels que certains périphériques/dev
,/proc
ou/sys
ne sont pas des répertoires / fichiers normaux, mais c'est un pseudo système de fichiers fournissant des interfaces pour traiter les données du noyau.Si vous n'avez pas Vagrant ou Linux, vous pouvez jouer avec certains émulateurs JavaScript Linux x86 .
Si vous êtes intéressé par les possibilités de récupérer d'un tel désastre, vérifiez:
la source