당신이 루트이고 당신이 발행하는 경우
rm -rf /
그렇다면 이 명령은 어디까지 갈 수 있을까요? 그러한 작업에서 데이터를 복구할 수 있습니까? 바이너리가 사라진 후에도 실행 중인 프로세스가 계속 활성화되어 있나요? 동일한 물리적 머신을 다시 시작하려면 어떻게 해야 합니까? 이를 달성하려면 어떤 파일을 복구해야 합니까?
가상 머신에서 시도해 볼 수도 있지만 이렇게 하는 이유가 무엇인지 알고 싶습니다.
답변1
이 명령은 적어도 처음으로 이 보안 기능을 구현하는 내가 사용하고 있는 OS(Solaris)에서는 아무 작업도 수행하지 않습니다.
# rm -rf /
rm of / is not allowed
--no-preserve-root
다른 *nix, 특히 Linux 제품군에서 충분히 새로운 GNU rm이 제공되면 명령을 완료(또는 적어도 시작)할 수 있도록 옵션을 추가해야 합니다 .
이 명령이 얼마나 멀리까지 갈지는 정의되지 않았습니다. 이는 다소 예측할 수 없는 수많은 이벤트에 따라 달라집니다. 일반적으로 프로세스는 바이너리가 삭제된 후에도 실행될 수 있습니다.
답변2
jlliagre의 탁월한 답변에도 불구하고 이는 여전히 매우 위험한 일이라는 점을 명심하십시오.언제나이런 일을 하기 전에 자신이 어디에 있는지 다시 확인하세요. 예를 들어, rm -rf
/usr 디렉토리에서 이 작업을 수행하면 결과는 비참해질 것입니다.rm -rf *
나머지 질문에 대해서는 복구할 수 있는 항목이 백업 프로세스에 따라 크게 달라집니다. 대부분의 *nix 시스템에서는 일단 삭제된 파일과 디렉터리를 복구하는 쉬운 방법이 없습니다. 삭제가 수행된 후에도 파일이 디스크에 남아 있는 경우가 많았던 이전 DOS 시절과 달리 이제 대부분의 시스템은 복구를 매우 어렵게 만드는 작업을 수행합니다. 이것이 데이터 복구 서비스가 비싼 이유 중 하나입니다.
가상 머신을 사용하는 경우 최소한 가끔씩 스냅샷을 찍는 것이 좋습니다. 하지만 좋은 백업 계획을 따르는 것보다 더 좋은 것은 없습니다.
답변3
방금 no-preserve-root 옵션을 사용하여 Ubuntu 16 및 vmware 워크스테이션에서 시도했는데 실행 중인 Linux 시스템의 전체 디스크가 지워졌습니다. 일단 완료되면 전체 vmware 워크스테이션 애플리케이션이 매우 불안정해졌고 심지어 가상 머신도 애플리케이션에서 종료하거나 재설정할 수 없었습니다. vmx 종료가 거부되었으며 그 후에는 호스트 재부팅만 작동합니다!
답변4
rm -rf /
루트로 게시함으로써 단순히 시스템을 손상시킬 수는 없습니다 . 처음에 명령은 안전 모드에서 실행되어 rm
on 의 사용이 제한되지만 이를 인수로 사용 /
하더라도 실행 중인 시스템은 실행 중인 프로세스를 디스크에서 제거하는 것을 허용하지 않습니다. 그러나 나머지 프로그램과 파일은 제거됩니다. --no-preserve-root
제거되어 실행할 프로그램이 거의 없는 시스템을 사용할 수 없게 됩니다! Virtual Box의 Arch Linux에서 실행된 명령의 스크린샷을 여기에서 확인하세요.http://bit.ly/q9CsA4