Jusqu'où pouvez-vous aller avec rm -rf / en tant que root

23

Si vous êtes root et que vous émettez

rm -rf / 

Jusqu'où peut aller la commande? Pouvez-vous récupérer des données de ce type d'action? Même après la disparition des binaires, les processus en cours seraient-ils toujours actifs? Que faudrait-il pour redémarrer la même machine physique? Quels fichiers devez-vous restaurer pour que cela se produise?

Je pourrais essayer cela sur une machine virtuelle et voir, mais je veux savoir la raison derrière quoi m'attendre si je fais cela.

Sudipta Chatterjee
la source
3
Duplicata de: superuser.com/questions/312769/…
Stéphane Gimenez
1
@Ste True, mais tant qu'il n'est pas copié / collé, nous le laissons généralement aller, car nous avons un certain chevauchement avec d'autres sites
Michael Mrozek

Réponses:

21

Cette commande ne fait rien, du moins sur le système d'exploitation que j'utilise (Solaris) avec lequel cette fonctionnalité de sécurité a été mise en œuvre pour la première fois:

# rm -rf /
rm of / is not allowed

Sur d'autres * nix, en particulier la famille Linux, si un rm Gnu assez récent est fourni, vous devrez ajouter l' --no-preserve-rootoption pour permettre à la commande de se terminer (ou au moins de démarrer).

Jusqu'où irait cette commande n'est pas définie. Cela dépend de nombreux événements plus ou moins imprévisibles. En règle générale, les processus peuvent s'exécuter même après la suppression de leurs fichiers binaires.

jlliagre
la source
5
Je ne vous ai pas cru au début, mais ça y est . Il est difficile de croire qu'il a fallu attendre 2005 (Sun / BSD) et 2006 (GNU) pour empêcher cette horrible erreur de se produire.
amphetamachine
3
Vous pouvez toujours utiliser rm -rf /*pour supprimer TOUT
Felix Yan
1
En effet mais dans ce cas il n'y a rien que rm puisse (facilement) faire car l'expansion du fichier est déjà faite par le shell avant l'appel de rm.
jlliagre
4

Même avec l'excellente réponse de jlliagre, rappelez-vous que c'est toujours une chose assez dangereuse à faire. Vérifiez toujours où vous êtes avant de faire des choses comme rm -rf. Ce serait catastrophique si vous deviez le faire rm -rf *dans le répertoire / usr, par exemple.

Quant au reste de vos questions, ce que vous pouvez récupérer dépend à peu près de vos procédures de sauvegarde. Dans la plupart des systèmes * nix, il n'existe aucun moyen simple de récupérer des fichiers et des répertoires une fois qu'ils ont été supprimés. Contrairement aux anciens jours DOS où les fichiers étaient souvent encore sur le disque après une suppression, la plupart des systèmes font de nos jours des choses qui rendent la récupération très difficile. C'est l'une des raisons pour lesquelles les services de récupération de données sont si chers.

Si vous utilisez une machine virtuelle, je recommande au moins de faire des instantanés de temps en temps. Mais rien ne peut battre après un bon plan de sauvegarde.

OldTimer
la source
2

Comme certains l'ont dit, vous pouvez toujours utiliser sudo rm -rf /*pour supprimer quoi que ce soit. Sans l'astérisque fonctionne également sur OS X. Quelqu'un a fait un film sur la destruction d'OS X Yosemite comme ça, et je suis sûr que le système d'exploitation basé sur Linux connaîtra à peu près la même chose.

Les choses commencent lentement à devenir irresponsables. Je ne pense pas que tout a été supprimé, car le terminal a gelé pendant le processus, mais cela a suffi pour geler le tout et faire un redémarrage forcé.

Tenter de redémarrer provoque un mode mono-utilisateur comme l'écran de démarrage avec des erreurs.

TheBro21
la source
1
Si cela peut vous consoler, sudo rm -rf /*ne supprimez pas les fichiers et répertoires cachés dans /. Il ne permettrait pas non plus de supprimer les fichiers masqués par un autre point de montage, les fichiers sur des systèmes de fichiers ou pseudo-systèmes de fichiers en lecture seule, des fichiers immuables ou des points de montage.
Stéphane Chazelas
@ StéphaneChazelas Cela a également été affiché dans les images. Il y a eu des erreurs avec le système de fichiers en lecture seule. Bien qu'il n'ait pas tout supprimé, il suffisait de geler et de détruire le démarrage (du système, pas EFI)
TheBro21
2

Je viens d'essayer avec Ubuntu 16 et vmware workstation et avec l'option no-preserve-root, il a effacé tout le disque de mon système Linux en cours d'exécution. une fois cette opération terminée, l'ensemble de l'application de station de travail vmware est devenu instable de manière inhabituelle et même la mise hors tension ou la réinitialisation de la machine virtuelle à partir de l'application était impossible. Tuer le vmx a été refusé, seul un redémarrage de l'hôte a fonctionné après cela!

Menace
la source
Agréable! :) C'est ce que j'espérais entendre de quelqu'un.
Sudipta Chatterjee
1

On ne peut pas simplement détruire son système en émettant en rm -rf /tant que root. Initialement, la commande sera émise en mode de sécurité intégrée, ce qui restreindra l'utilisation de rmon /mais même avec --no-preserve-rootcomme argument, le système en cours d'exécution ne permettra pas la suppression des processus en cours d'exécution du disque; cependant, les autres programmes et fichiers seront supprimés, laissant un système inutilisable avec (presque) aucun programme à exécuter! Veuillez vérifier les captures d'écran goudronnées ici, la commande a été émise dans Arch Linux dans Virtual Box: http://bit.ly/q9CsA4

Abhisek De
la source
Pouvez-vous télécharger les photos quelque part? Le téléchargement d'un tar, le non tarage et la visualisation de tous les fichiers ne sont pas quelque chose que la plupart des gens vont faire. Oh et les raccourcisseurs d'URL ne sont pas autorisés sur SE, utilisez toujours le vrai lien
TheLQ
3
Vous avez écrit: "le système en cours d'exécution ne permettra pas de supprimer les processus en cours d'exécution du disque". En ce qui concerne * nix, c'est incorrect. Cette limitation existe sous Windows mais vous pouvez supprimer (dissocier) les fichiers sous Unix / Linux même lorsqu'ils sont exécutés.
jlliagre
2
"... le système en cours d'exécution ne permettra pas de supprimer les processus en cours d'exécution du disque ..." C'est, je le crains, pas vrai - les fichiers qui ne peuvent pas être supprimés dans votre exemple ne sont pas du tout de véritables "fichiers" du tout - ils permettent d'accéder aux périphériques de bloc, aux modules du noyau et à d'autres composants internes du système. L'exécution d'une opération de suppression sur eux n'a aucun sens et ne peut pas être effectuée de la même manière root.
Nathan Osman
Voici les photos d'Abhisek partagées dans la galerie en ligne: min.us/mSQcqHGQA min.us/moyPvnYOw (à la demande de TheLQ)
Artem Pelenitsyn