Jusqu'où vous pouvez aller, cela dépend essentiellement des distributions Unix/Linux spécifiques.
Mais pour répondre à votre question de base, oui - rm
serait supprimée avec elle ainsi que toute autre commande standard dans /bin
et d'autres dossiers.
Voici le test simple que j'ai effectué sous Linux Ubuntu 15.04 en utilisant une VM.
-
Initialiser la machine virtuelle via vagrant
:
vagrant init ubuntu/vivid64 && vagrant up --provider virtualbox && vagrant ssh
-
Ensuite, lorsque vous essayez de supprimer tous les fichiers de la manière standard, vous ne pouvez pas le faire :
vagrant@vagrant-ubuntu-vivid-64:~$ sudo rm -fr /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe
-
Essayons donc --no-preserve-root
. Vérifiez toujours que vous êtes connecté à la machine virtuelle (afin d'avoir vagrant@vagrant-ubuntu-vivid-64:~$
), puis courir (n'essayez pas ça à la maison) :
vagrant@vagrant-ubuntu-vivid-64:~$ sudo rm -vfr --no-preserve-root /
removed directory: '/lost+found'
removed directory: '/opt'
removed '/bin/nc'
removed '/bin/less'
removed '/bin/wdctl'
removed '/bin/nano'
...
removed '/bin/rmdir'
removed '/bin/sh'
removed '/bin/rm'
...
removed directory: '/bin'
removed directory: '/usr/games'
removed '/usr/bin/byobu-launcher-install'
removed '/usr/bin/ipcmk'
removed '/usr/bin/sum'
removed directory: '/usr/bin'
removed '/usr/lib/gcc/x86_64-linux-gnu/4.9.2'
removed '/usr/lib/gcc/x86_64-linux-gnu/5.0.1'
removed directory: '/usr/lib/gcc/x86_64-linux-gnu/5'
removed '/usr/lib/gcc/x86_64-linux-gnu/4.9/libquadmath.so'
removed '/usr/lib/gcc/x86_64-linux-gnu/4.9/libgomp.so'
...
removed directory: '/run/initramfs'
removed directory: '/media'
rm: cannot remove '/proc/fb': Operation not permitted
rm: cannot remove '/proc/fs/ext4/sda1/options': Operation not permitted
...
removed '/vmlinuz'
removed '/boot/config-3.19.0-23-generic'
removed '/boot/grub/grubenv'
...
removed directory: '/boot'
removed '/lib64/ld-linux-x86-64.so.2'
rm: cannot remove '/dev/hugepages': Device or resource busy
rm: cannot remove '/dev/mqueue': Device or resource busy
rm: cannot remove '/dev/shm': Device or resource busy
removed '/dev/vcsa7'
...
removed '/dev/mem'
removed '/dev/rfkill'
removed '/dev/vga_arbiter'
...
rm: cannot remove '/sys/fs/ecryptfs/version': Operation not permitted
removed directory: '/etc'
removed directory: '/mnt'
removed '/vagrant/.vagrant/machines/default/virtualbox/action_provision'
removed '/vagrant/.vagrant/machines/default/virtualbox/action_set_name'
removed '/vagrant/.vagrant/machines/default/virtualbox/creator_uid'
removed '/vagrant/.vagrant/machines/default/virtualbox/id'
removed '/vagrant/.vagrant/machines/default/virtualbox/index_uuid'
removed '/vagrant/.vagrant/machines/default/virtualbox/private_key'
removed '/vagrant/.vagrant/machines/default/virtualbox/synced_folders'
removed directory: '/vagrant/.vagrant/machines/default/virtualbox'
removed directory: '/vagrant/.vagrant/machines/default'
removed directory: '/vagrant/.vagrant/machines'
removed directory: '/vagrant/.vagrant'
removed '/vagrant/Vagrantfile'
rm: cannot remove '/vagrant': Device or resource busy
Après cela, il revient à l'invite Shell comme si rien ne s'était passé, mais vous ne pouvez plus exécuter aucune commande en dehors des quelques commandes intégrées et de celles qui ne le sont pas. kill
pour que vous puissiez finir votre travail et tuer votre session :)
Par exemple :
$ rm
rm: command not found
$ kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
$ which kill
-bash: /usr/bin/which: No such file or directory
$ kill -9 $$
Connection to 127.0.0.1 closed.
Donc ça a pratiquement tout enlevé, y compris rm
, ls
et toutes les autres commandes, mais vous êtes toujours connecté. Il y a quelques dossiers spéciaux qui n'ont pas été supprimés, comme certains dispositifs de /dev
, /proc
o /sys
qui ne sont pas des répertoires/fichiers ordinaires, mais un pseudo-système de fichiers fournissant des interfaces aux données du processus et du noyau.
Si vous ne disposez pas de Vagrant ou de Linux, vous pouvez jouer avec quelques Émulateurs JavaScript Linux x86 .
Si vous êtes intéressé par les possibilités de récupération après un tel désastre, vérifiez :