rm -rf /를 루트로 사용할 수있는 거리


23

당신이 루트이고 발행하면

rm -rf / 

그러면 명령이 얼마나 멀리 갈 수 있습니까? 이런 종류의 작업에서 데이터를 복구 할 수 있습니까? 바이너리가 사라진 후에도 실행중인 프로세스가 여전히 활성 상태입니까? 동일한 물리적 시스템을 다시 부팅하려면 무엇이 필요합니까? 이를 위해 어떤 파일을 복원해야합니까?

나는 이것을 VM에서 시도해 볼 수는 있지만, 내가 이것을 할 때 무엇을 기대 해야하는지에 대한 이론적 근거를 알고 싶다.



1
@Ste True, 복사 / 붙여 넣기를하지 않는 한 다른 사이트와 중복되기 때문에 일반적으로 보내주십시오
Michael Mrozek

답변:


21

이 명령은 적어도이 보안 기능이 처음 구현 된 OS (Solaris)에서 사용하지 않습니다.

# rm -rf /
rm of / is not allowed

다른 * nix, 특히 Linux 제품군에서 최근 충분한 Gnu rm이 제공되는 --no-preserve-root경우 명령을 완료 (또는 최소한 시작) 할 수 있도록 옵션을 추가해야합니다 .

이 명령의 진행 거리는 정의되어 있지 않습니다. 그것은 예측할 수없는 많은 사건에 달려 있습니다. 일반적으로 프로세스는 바이너리가 제거 된 후에도 실행될 수 있습니다.


5
처음에 당신을 믿지 않았지만 거기에 있습니다 . 이 끔찍한 실수가 발생하는 것을 막기 위해 2005 년 (Sun / BSD)과 2006 년 (GNU)까지는 믿기 어렵습니다.
amphetamachine

3
여전히 rm -rf /*ANYTHING
Felix Yan

1
실제로 그러나이 경우 rm이 호출되기 전에 파일 확장이 이미 쉘에 의해 수행되므로 rm이 할 수있는 일은 없습니다 (쉽게).
jlliagre

4

jlliagre의 훌륭한 대답이 있더라도 이것은 여전히 ​​위험한 일임을 기억하십시오. 같은 작업을 수행하기 전에 항상 현재 위치를 다시 확인하십시오 rm -rf. rm -rf *예를 들어, / usr 디렉토리에있는 동안 수행하면 치명적일 수 있습니다 .

나머지 질문에 관해서는, 복구 할 수있는 것은 백업 절차에 따라 다릅니다. 대부분의 * nix 시스템에서는 파일과 디렉토리를 삭제 한 후 복구 할 수있는 간단한 방법이 없습니다. 삭제가 수행 된 후 파일이 디스크에 남아있는 DOS 시절과 달리 요즘 대부분의 시스템은 복구를 매우 어렵게 만듭니다. 이것이 데이터 복구 서비스가 너무 비싼 이유 중 하나입니다.

VM을 사용하는 경우 최소한 스냅 샷을 작성하는 것이 좋습니다. 그러나 훌륭한 백업 계획을 따르는 것보다 더 좋은 것은 없습니다.


2

일부 사람들이 말했듯이 여전히 sudo rm -rf /*아무것도 제거 하는 데 사용할 수 있습니다 . 별표가 없으면 OS X에서도 작동합니다. 누군가가 이와 같이 OS X Yosemite를 파괴하는 것에 대한 영상을 만들었고 Linux 기반 OS가 거의 똑같이 경험할 것이라고 확신합니다.

상황이 느리게 반응하기 시작합니다. 프로세스가 진행되는 동안 터미널이 멈추어 모든 것이 삭제되었다고 생각하지는 않지만 모든 것을 얼리고 강제로 다시 시작하기에 충분했습니다.

재부팅을 시도하면 부팅 화면과 같은 단일 사용자 모드에서 오류가 발생합니다.


1
그것이 위안을 줄 수 있다면에서 sudo rm -rf /*의 숨겨진 파일과 디렉토리를 삭제하지 않을 것입니다 /. 또한 다른 마운트 지점, 읽기 전용 파일 시스템 또는 의사 파일 시스템의 파일, 변경 불가능한 파일 또는 마운트 지점에 의해 마스킹 된 파일은 삭제하지 못합니다.
Stéphane Chazelas

@ StéphaneChazelas 영상에도 표시되었습니다. 읽기 전용 파일 시스템에 오류가있었습니다. 모든 것을 삭제하지는 않았지만 부팅 (EFI가 아닌 시스템의 부팅)을 중지하고 파괴하는 것으로 충분했습니다.
TheBro21

2

방금 Ubuntu 16 및 vmware 워크 스테이션으로 시도했지만 no-preserve-root 옵션을 사용하면 실행중인 Linux 시스템의 전체 디스크가 지워졌습니다. 완료된 후 전체 vmware 워크 스테이션 앱이 불안정하게되어 애플리케이션에서 가상 머신의 전원을 끄거나 재설정 할 수 없었습니다. 그 후 호스트 재부팅만으로 vmx 종료가 거부되었습니다!


좋은! :) 이것은 내가 누군가로부터 듣고 싶어하는 것입니다.
Sudipta Chatterjee

1

rm -rf /루트 로 발행하여 시스템을 파괴 할 수는 없습니다 . 처음에는 명령이 페일 세이프 모드로 실행되어 rmon 의 사용을 제한 /하지만 --no-preserve-root인수로도 실행중인 시스템은 디스크에서 실행중인 프로세스를 제거 할 수 없습니다. 그러나 나머지 프로그램과 파일은 제거되어 사용할 프로그램이 거의없는 사용할 수없는 시스템이 남습니다! 여기에서 tar 스크린 샷을 확인하십시오. 명령은 Virtual Linux의 Arch Linux에서 실행되었습니다 : http://bit.ly/q9CsA4


어딘가에 사진을 올릴 수 있습니까? 타르 다운로드, untaring 및 모든 파일보기는 대부분의 사람들이 할 일이 아닙니다. 아, 그리고 URL 단축은 SE에서 허용되지 않습니다. 항상 실제 링크를 사용하십시오
TheLQ

3
"실행중인 시스템은 디스크에서 실행중인 프로세스를 제거 할 수 없습니다." * nix에 관한 한 이것은 올바르지 않습니다. 이 제한 사항은 Windows에 존재하지만 실행 중에도 Unix / Linux에서 파일을 제거 (링크 해제) 할 수 있습니다.
jlliagre

2
"... 실행중인 시스템은 디스크에서 실행중인 프로세스를 제거 할 수 없습니다 ..."이것은 사실이 아닙니다. 예에서 삭제할 수없는 파일은 실제로 실제 '파일'이 아닙니다. -블록 장치, 커널 모듈 및 기타 시스템 내부에 대한 액세스를 제공합니다. 그들에 대해 삭제 작업을 수행하는 것은 의미가 없으며로 수행 할 수 없습니다 root.
Nathan Osman

다음은 온라인 갤러리에서 공유 한 Abhisek의 사진입니다 : min.us/mSQcqHGQA min.us/moyPvnYOw (TheLQ의 요청에 의해)
아르 템 Pelenitsyn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.