Frenux 위키
Advertisement
Oxygen480-status-mail-task 검증이 필요합니다.
작성자가 리눅스 자폭하기 문서의 내용을 제대로 테스트하지 않고 써서 잘못된 지식을 서술했을 가능성이 조금 있습니다. 여러분이 나서서 검증해주세요.


껐다 켜도 안 되는 방법[]

rm -rf /[]

모든 파일과 디렉터리를 날려버리는 기능 - 현재는 --no-preserve-root을 사용해야 합니다.

현재는 rm -rf / --no-preserve-root을 붙여야 합니다. 물론 최근에는 기본으로 보호되어 이렇게 해야 하지만, 구버전 rm은 기본값이 보호되지 않는 것이기 때문에 저 옵션을 붙이지 않아도 시원하게(!) 날아갑니다. 참고로 --preserve-root라는 옵션도 있습니다. 이 옵션은 루트 디렉터리를 보호합니다. 단, 루트 디렉터리의 하위 디렉터리라면 중요한 것이라도 보호하지 않습니다.

--no-preserve-root 를 붙이기가 귀찮다면, 그냥 'rm -rf /*'라고 써도 됩니다.

mv /*[]

루트에서 모든 파일과 디렉터리를 오름차순으로 정렬하였을 시의 마지막 디렉터리로 이동합니다. - 그 마지막이 디렉터리가 아니면 이 명령어는 무효입니다.

예를 들면 다음과 같은 식으로 루트 디렉터리가 나오면...

#ls /
bin boot dev etc home lib lib64 root proc sbin selinux sys tmp usr var
#mv /*

이것을 시전하였을 시 bin, boot, dev, etc, home, lib, lib64, root, proc, sbin, selinux, sys, tmp, usr가 모두 var로 이동합니다. 그렇다면 bin, sbin, etc 등의 경로가 바뀌었으니 어떻게 할 수가 없겠지요... 아, 물론 재이동하면 복구는 가능합니다. 하지만 함부로 명령을 날리지 마세요.

bash: mv: command not found...

그러니까, 복구를 하더라도 /var/bin/mv를 이용해야 하는 웃지 못할 사태가 생기겠군요.

주의: 실험한 적이 없습니다. 이 짓을 하다가 무슨 일이 생겨도 책임 안 집니다.

chmod -R 000 /[]

모든 파일과 디렉터리의 권한을 000으로 바꿔버립니다.

일부는 suid같은 것이 붙어있거나, 그렇지 않아도 기본 권한이 다르니 곤란하겠군요. 게다가...

bash: chmod: permission denied

이렇게 되니, mv와는 달리 그 자리에서 복구할 수 없습니다. 라이브 cd를 넣든지 해서 해결할 수 있을까요? 하지만 일부 파일의 기본 권한을 일일이 살펴봐야 한다는 점 때문에 차라리 재설치하는 것이 나은 방법입니다. 뭐, 대부분은 644겠지만요.

껐다 켜가 먹히는 방법[]

아래 방법들은 애석하게도(!) 껐다켜가 먹힙니다. 대신 일반 사용자도 가능하니, 남의 서버에서 이 짓 하다가 쫓겨나지 마세요. 그리고 사태가 너무 심각해지면 껐다 켜도 안 먹힐 수도 있습니다. 제발, 악의적인 목적으로 사용하지 마세요. 그래도 꼭 그렇게 사용하는 놈들이 있더라.

아래 방법들은 프로세스를 무한정 생성하여 컴퓨터를 난처하게 만드는 경우입니다. 현재 커널 옵션에는 생성되는 프로세스 수를 제한하는 것이 들어있다고 하더군요.

while [ true ]; do fork; done;[]

셸 스크립트입니다. fork(자식 프로세스 생성)을 무한으로 하는 것이죠. 이 방법을 쓰면 프로세스가 마구 생성되어 리눅스가 멍해지지만, 재미 없게도 ctrl+C 한 방으로도 제압할 수 있습니다. 부모 프로세스가 죽으면 자식 프로세스들도 다 죽어버리거든요. 아니면 셸을 닫아버리시거나...

bomb(){ bomb|bomb& };bomb[]

이것을 흔히 포크 밤(Fork Bomb)이라 부릅니다. 유명한 방법 중 하나죠. 여기에서는 bomb라는 함수를 우선 선언합니다. 이 함수는 자신을 호출하여, 그 결과값을 자신에게 넘겨줍니다. 이 과정에서 또 자기 자신을 부르겠지요? 그리고 이것이 한 번 실행되고 그대로 끝나지 않고 프로세스로 남아있도록 백그라운드로 실행합니다. 쉽게 말해 자가 호출입니다. 그러니까 재귀 함수를 이용하는 것입니다.

될 듯 되지 않는 방법[]

kill -9 1[]

구버전 솔라리스에서 이 명령이 먹혔다고 합니다. 하지만 리눅스는 이 명령을 내려도 아무 일도 일어나지 않습니다. killall init, killall systemd(Fedora) 역시 마찬가지입니다. 이 방법은 재부팅을 하면 됩니다.

Advertisement