Interpreting Compiler

rm.dd 도대체 무슨 뜻으로 쓴 건지...

by

한 신문이 얼마 전 'rm.dd'…사상 최악의 전산망 마비 가져온 알파벳 4글자와 점 하나라는 기사를 썼습니다. 처음 볼 때는 그냥 그런가보다 싶었는데, 어느 순간 이 사건이 저와 관련된 일이 되니까 이 기사가 궁금해졌습니다. 찾아보니 유닉스와 리눅스 등 서버 운영체제에서 사용하는 명령어더군요. rm은 remove라는 뜻으로 rm blog라고 쓰면 blog라는 파일을 찾아서 삭제시키라는 뜻입니다. 이번에는 -rf라는 옵션과 함께 사용됐을 가능성이 높아보입니다. rm -rf라고 하면 모든 파일을 강제로 삭제시키는 것이죠. dd는 조금 복잡합니다. 특정 범위에 대한 파일 입출력 관련 명령어인데, if(input file)나 of(output file) 같은 옵션과 함께 사용합니다. 예를 들어 dd if=/dev/zero of=/dev/(경로) 형식으로 명령어를 쓰면 해당 경로의 위치에 아무 의미없는 빈 파일을 써냅니다. 종이로 비유하자면 rm 명령은 연필로 쓴 글씨가 가득한 종이를 지우개로 지우는 것이고, dd 명령은 검정 볼펜으로 글을 쓴 위에 흰색 잉크가 나오는 펜으로 다른 글을 덮어서 쓰는 셈이죠. 그러니까 둘 다 치명적인 명령이긴 한데, 따지고 보면 dd 명령이 좀 더 심각합니다. 자국을 살펴서 복원하기도 힘든 것이니까요. 이런 명령들을 모든 파일과 디렉토리를 포함하는 최상위 경로에서 사용하면 ... 이번 농협 사건같은 엄청난 일이 벌어지는 셈이죠.

그러니까 rm.dd 알파벳 네 글자와 점 하나라고 쓰면 저쪽 업종에서 서버 관리나 유닉스 관련 일을 하시는 분들은 얼마나 당황스러울까요. 궁금해서 유닉스 명령을 잘 아시는 분에게 전화도 걸어봤습니다. "나도 그 기사 봤는데, 아마도 유닉스에서는 명령어를 변경해서 사용할 수도 있으니까 그렇게 바꿨다는 뜻은 아닐까?"라고 되묻더군요. 결론은 기본값으로는 저런 문법의 명령은 없다는 겁니다.

조금 전 KBS 뉴스에서는 메인 앵커가 "알엠~, (뜸 들이고) 디디! 이 알파벳 네 글자가 농협 전산망을 마비시켰습니다." 아... 이 코미디 같은 상황이 빨리 종결됐으면 좋겠습니다. 조금만 확인해 보면 될텐데요.