리눅스 명령어 srm 사용법 및 옵션 5가지

리눅스 명령어 srm은 파일을 삭제할 때 여러번 덮어씌워 파일을 완전히 삭제할 수 있습니다. 리눅스를 사용하는 많은 사용자들은 파일을 삭제할 때 주로 rm 명령어를 사용합니다. 하지만 rm 명령어로 삭제한 파일은 실제로 완전히 지워지는 것이 아니라, 디스크에 흔적이 남아 복구 프로그램을 통해 복원할 수 있습니다. 이러한 이유로 민감한 데이터를 처리하거나 보안이 중요한 환경에서는 rm 명령어 대신 파일을 완전히 삭제할 수 있는 명령어가 필요합니다. 그 중 하나가 바로 srm 명령어입니다.

리눅스 명령어 srm이란?

srm은 “secure remove”의 약자로, 파일을 완전히 삭제해 복구가 불가능하게 만듭니다. srm은 파일을 삭제할 때 디스크에 저장된 데이터를 여러 번 덮어쓰며 흔적을 남기지 않기 때문에, 보안이 중요한 파일을 삭제할 때 사용됩니다. 특히 개인정보나 기업 기밀 파일 같은 중요한 데이터를 삭제할 때 유용합니다.

srm이 기본적으로 사용하는 38회의 덮어쓰기를 하는 방식은 다음과 같습니다. 우선 파일의 모든 비트를 1로 채웁니다. 그리고 5회는 랜덤 값으로 채웁니다. 그리고 Peter Gutmann이 정의한 특수값으로 27번 채웁니다. 다시 랜덤 값으로 5회 덮어씁니다. 파일 이름을 랜덤 값으로 변경한 후 파일을 최종 삭제합니다.

srm vs rm

rmsrm의 가장 큰 차이점은 데이터 삭제 방식입니다. rm은 파일을 삭제하더라도 그 데이터가 남아있는 경우가 많아 복구가 가능하지만, srm은 여러 번 데이터를 덮어써 복구를 어렵게 만듭니다. 따라서, 보안이 요구되는 환경에서는 srm을 사용하는 것이 권장됩니다. srm과 유사한 기능을 하는 것으로 wipe 명령어가 있습니다.

srm 설치 방법

대부분의 리눅스 배포판에는 기본적으로 srm 명령어가 포함되어 있지 않으므로, 별도의 설치가 필요합니다. Ubuntu나 Debian 계열에서는 아래의 명령어로 설치할 수 있습니다.

sudo apt install secure-delete
ShellScript

이렇게 설치한 후에는 srm 명령어를 사용할 수 있습니다.

srm 명령어 기본 사용법

srm 명령어의 기본 사용법은 매우 간단합니다. 파일을 삭제할 때 srm 뒤에 파일 경로를 입력하면 됩니다.

srm filename
ShellScript

예를 들어, example.txt라는 파일을 삭제하고 싶다면 다음과 같이 입력합니다.

srm example.txt
ShellScript

이렇게 하면 example.txt 파일은 여러 번 덮어쓰기 과정을 거치면서 완전히 삭제됩니다. 삭제 과정을 모두 마치면 명령 프롬프트가 나타납니다. 별다른 설명이 없습니다.

그림 1. 리눅스 명령어 srm: 기본 사용법
그림 1. 리눅스 명령어 srm: 기본 사용법

srm 명령어 주요 옵션

srm 명령어는 다양한 옵션을 제공하여 파일 삭제 방식을 사용자 정의할 수 있습니다. 주요 옵션들은 다음과 같습니다.

-r (recursive)

디렉터리 내 모든 파일을 삭제하고 싶을 때 사용하는 옵션입니다. -r 옵션을 사용하면 디렉터리와 그 안에 포함된 모든 파일과 서브디렉터리까지 삭제됩니다.

srm -r subdir
ShellScript

-v (verbose)

삭제 과정을 자세히 확인하고 싶을 때 사용하는 옵션입니다. -v 옵션을 사용하면 파일이 삭제되는 과정을 터미널에서 볼 수 있습니다.

srm -v filename
ShellScript

-v 옵션을 이용하면 다음과 같이 파일의 삭제 과정을 상세히 확인할 수 있습니다.

그림 2. 리눅스 명령어 srm: -v 옵션으로 삭제 과정 자세히 확인
그림 2. 리눅스 명령어 srm: -v 옵션으로 삭제 과정 자세히 확인

-l (less secure)

보안성이 약간 낮은 삭제 방식을 사용하고 싶을 때 사용하는 옵션입니다. 기본적으로 srm은 매우 높은 보안성을 제공하기 위해 38번 덮어쓰기를 하지만, -l 옵션을 사용하면 덮어쓰기 횟수를 2회로 줄여 삭제 속도를 높일 수 있습니다.

srm -l filename
ShellScript

-l 옵션을 사용해서 보안성을 낮추면 2번만 덮어씌우게 됩니다. 한 번은 모든 값을 1로 채우고, 한 번은 랜덤값으로 채우는 방식으로 처리합니다.

그림 3. 리눅스 명령어 srm: -l 옵션으로 2번만 덮어씌우기
그림 3. 리눅스 명령어 srm: -l 옵션으로 2번만 덮어씌우기

-f (fast and insecure mode)

-f 옵션을 사용하면 빠른 비보안모드로 삭제하게 됩니다. /dev/urandom과 synchronize 모드를 사용하지 않습니다.

srm -f filename
ShellScript

빠른 모드로 삭제하게 되어도 덮어씌우는 것은 38회이지만 랜덤 값으로 덮어씌우거나 동기화 모드를 사용하지 않습니다.

그림 4. 리눅스 명령어 srm: -f 옵션으로 빠르게 삭제
그림 4. 리눅스 명령어 srm: -f 옵션으로 빠르게 삭제

-z (zero)

파일을 38번 덮어 씌워 삭제한 후, 디스크의 남은 공간을 0으로 덮어쓰기하는 옵션입니다. 이 옵션은 파일을 삭제한 후 해당 공간의 모든 비트를 0으로 채워넣어 깔끔하게 정리할 때 유용합니다.

srm -z filename
ShellScript

사용 시 주의사항

srm 명령어를 사용할 때는 몇 가지 주의할 점이 있습니다.

  1. 복구 불가능성: wipe 명령어의 경우에는 삭제 전에 정말 삭제할 것인지 확인하는 과정이 있지만, srm은 바로 파일을 삭제해 버립니다. wipe와 마찬가지로 srm으로 삭제한 파일은 복구할 수 없습니다. 실수로 중요한 파일을 삭제하지 않도록 주의해야 합니다. 삭제 전에 반드시 확인하는 습관을 기르세요.
  2. 성능 저하: srm 명령어는 파일을 여러 번 덮어쓰기 때문에 일반적인 rm 명령어보다 시간이 오래 걸립니다. 특히 큰 파일이나 많은 파일을 삭제할 때는 삭제 시간이 상당히 길어질 수 있습니다.
  3. 디스크 손상 가능성: 너무 많은 파일을 반복적으로 덮어쓰면 SSD와 같은 플래시 저장장치의 수명을 줄일 수 있습니다. 플래시 메모리 기반의 저장장치를 사용할 경우에는 srm 명령어 사용에 신중해야 합니다.

유용한 활용 방법

리눅스 명령어 srm은 특히 보안이 중요한 업무 환경에서 매우 유용합니다. 다음과 같은 상황에서 활용할 수 있습니다.

  • 개인정보 보호: 사용자 정보나 고객 데이터를 안전하게 삭제할 때 사용하면 데이터 유출을 방지할 수 있습니다.
  • 디스크 정리: 오래된 파일을 삭제할 때 흔적을 남기지 않고 정리할 수 있습니다. 특히 디스크를 중고로 판매하거나 양도할 때 사용하면 유출 우려를 줄일 수 있습니다.

또한, srm 명령어를 정기적으로 스크립트에 포함시켜 자동으로 중요한 파일들을 주기적으로 삭제하도록 설정할 수도 있습니다. 이렇게 하면 민감한 데이터를 일일이 수작업으로 삭제할 필요 없이 효율적으로 관리할 수 있습니다.

정리

리눅스 명령어 srm은 단순한 파일 삭제를 넘어 데이터를 완전히 제거하여 복구할 수 없도록 만드는 강력한 도구입니다. 보안이 중요한 상황에서 파일 삭제를 할 때 rm 대신 srm을 사용하는 것은 데이터를 안전하게 관리하는 방법 중 하나입니다. 다만, 사용 시 성능 저하나 실수로 인한 복구 불가능성에 주의해야 하며, SSD와 같은 저장장치의 경우에는 신중하게 사용하는 것이 좋습니다.

참고자료

관련 포스트

Leave a Comment