당신이 얻을 수있는 거리는 기본적으로 특정 유닉스 / 리눅스 배포판에 달려 있습니다.
그러나 기본 질문에 대답하기 위해 yes- rm
명령은 다른 표준 명령 /bin
및 다른 폴더 와 함께 제거됩니다 .
다음은 Linux를 사용하여 Linux Ubuntu 15.04에서 수행 한 간단한 테스트입니다.
다음을 통해 가상 머신을 초기화하십시오 vagrant
.
vagrant init ubuntu/vivid64 && vagrant up --provider virtualbox && vagrant ssh
그런 다음 표준 방식으로 모든 파일을 제거하려고하면 다음을 수행 할 수 없습니다.
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
시도해 봅시다 --no-preserve-root
. 항상 가상 머신에 로그인했는지 확인하고 (따라서 vagrant@vagrant-ubuntu-vivid-64:~$
) 실행 한 다음 (집에서 시도하지 마십시오) :
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
그 후 아무 일도 일어나지 않은 것처럼 쉘 프롬프트로 돌아 오지만 내장 및 몇 개를 제외하고는 더 이상 명령을 실행할 수 없으므로 kill
작업을 끝내고 세션을 종료 할 수 있습니다.)
예를 들면 다음과 같습니다.
$ 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.
그래서 꽤 모든 것을 포함 제거 rm
, ls
다른 모든 명령을,하지만 여전히 당신은 로그인 한 것입니다. 거기에서 같은 일부 장치를 제거되지 않은 일부 특수 폴더입니다 /dev
, /proc
또는 /sys
일반 디렉토리 / 파일이 아닌되어 있지만, 처리하는 인터페이스와 커널 데이터를 제공하는 가상 파일 시스템입니다.
Vagrant 또는 Linux가없는 경우 일부 JavaScript Linux x86 에뮬레이터 를 사용할 수 있습니다 .
이러한 재해로부터 복구 할 수있는 가능성에 관심이있는 경우 다음을 확인하십시오.