Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

이전에 하드 디스크 전체 내용을 완전히 지우는 방법을 살펴본 적이 있습니다. 그렇다면 파일 한두 개, 혹은 수십 개만 삭제하고 싶을 때는 어떻게 해야 할까요? 하드 드라이브 전체를 포맷하지 않고도 파일을 복구 불가능한 상태로 완전히 제거할 방법은 없을까요? 다행히 답은 '있다'이며, 그 방법도 하나가 아닙니다! 이번 글에서는 리눅스에서 파일을 완전히 삭제하는 가장 인기 있는 방법들을 소개합니다.

주의: SSD에서는 효과가 제한적입니다

현재 시장에 나와 있는 대부분의 SSD는 여유 공간을 관리하기 위한 TRIM 기능을 지원합니다. 이는 펌웨어 수준에서 저장된 데이터를 재배치하는 기능입니다. 여기에 리눅스의 저널링 파일 시스템(Ext3/4, ReiserFS 등)까지 결합되면, 개별 파일을 복구 불가능하게 삭제하는 것을 보장할 수 없습니다. 안타깝게도 이런 경우 유일한 확실한 해결책은 SSD 전체를 통째로 지우는 것뿐입니다.

휴지통 우회하기

간단하지만 효과적인 첫걸음은 휴지통 폴더를 거치지 않고 파일을 바로 삭제하는 것입니다. 이렇게 하면 삭제된 파일이 휴지통에 남아 있지 않고 즉시 삭제 처리됩니다. 복구를 완전히 불가능하게 만드는 것은 아니지만, 누구나 쉽게 접근할 수 있는 상태보다는 한 단계 더 안전합니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

KDE를 사용하는 Kubuntu 같은 배포판에서 설정하려면 기본 파일 관리자인 돌핀(Dolphin)을 실행하고 "제어(Control) → 환경설정(Preferences) → 휴지통(Trash)" 메뉴로 이동합니다. 휴지통을 완전히 비활성화하는 옵션은 없지만, 대부분의 상황을 커버할 수 있는 유용한 팁이 있습니다. 크기 제한(Size limit) 옵션을 활성화하고 값을 최소로 줄이는 것입니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

필자의 디스크에서는 205.09KiB로 설정되었습니다. 휴지통 용량이 이 값을 초과하면 돌핀이 자동으로 비워주기 때문에, 일반적인 데스크톱 사용 환경에서는 몇 시간마다 휴지통이 비워질 것입니다. 노틸러스(Nautilus)나 네모(Nemo) 같은 다른 파일 관리자는 휴지통을 아예 건너뛰는 옵션을 직접 제공하기도 합니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

shred 사용하기

우분투 계열 배포판을 사용 중이라면 shred은 이미 시스템에 포함되어 있을 가능성이 높습니다. 별도 설치 없이 바로 민감한 파일을 완전히 지우는 데 사용할 수 있습니다.

예를 들어 "deleteme.jpg" 파일을 완전히 삭제하려면 다음 명령어를 사용합니다:

shred -uvz -n 2 deleteme.jpg

각 옵션의 의미는 다음과 같습니다:

  • u: 덮어쓰기 전에 먼저 파일을 삭제합니다.
  • v: 진행 과정에 대한 상세 정보를 화면에 표시합니다.
  • z: 데이터가 있던 공간을 0으로 채워 복구 가능성을 더욱 낮춥니다.
  • -n 2: 총 세 번의 삭제 패스를 의미합니다. shred은 기본적으로 한 번 실행되며, "-n" 옵션으로 추가 패스 횟수를 지정해 보안을 강화할 수 있습니다. 일반적으로 세 번의 패스면 대부분의 경우 충분하다고 알려져 있습니다.
리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

여러 파일이나 폴더 전체를 삭제하려면 와일드카드를 활용할 수 있습니다:

shred -uvz -n 1 Pictures/delete_those_images_0?.jpg
shred -uvz -n 4 Pictures/*.*

첫 번째 예에서 "?"는 단일 문자를 대체하는 와일드카드로, "delete_those_images_01.jpg", "delete_those_images_02.jpg" 같은 파일들이 삭제됩니다.

두 번째 예에서는 이름이나 확장자와 무관하게 Pictures 디렉터리의 모든 파일이 삭제됩니다.

wipe 사용하기

wipe도 훌륭한 대안입니다. 배포판의 소프트웨어 센터에서 검색해 설치하거나 다음 명령어로 설치할 수 있습니다:

sudo apt install wipe
리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

사용법은 shred만큼 간단합니다. 파일이나 디렉터리를 삭제하려면 다음과 같이 입력합니다:

wipe Pictures/deleteme.jpg

다만 wipe는 기본적으로 보안을 위해 매우 많은 패스를 실행해 시간이 오래 걸리고, 삭제 전 확인 절차를 요청하기 때문에 다소 번거로울 수 있습니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

f 플래그로 확인 절차를 생략하고, r 플래그로 하위 디렉터리까지 재귀적으로 처리할 수 있습니다. c는 필요한 경우(파일이나 디렉터리에 쓰기 권한이 없을 때) chmod를 실행하도록 하며, q는 패스 횟수를 줄여 삭제 속도를 높여줍니다. 주의할 점은 q가 반드시 소문자여야 한다는 것입니다. 뒤에 대문자 "Q"와 원하는 패스 횟수를 붙일 수 있습니다. 앞서의 간단한 명령어에 이 옵션들을 적용하면 다음과 같이 됩니다:

wipe -rfcq -Q 3 Pictures/deleteme.jpg

Secure Delete(srm) 사용하기

srm은 HDD에서 데이터를 안전하게 삭제하는 데 특화된 Secure Delete 도구 모음 중 하나로, 많은 사람들이 이 작업에 가장 적합한 도구로 꼽습니다.

우분투 및 호환 배포판에 Secure Delete 전체 도구 모음을 설치하려면 다음 명령어를 사용합니다:

sudo apt install secure-delete
리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

설치 후에는 다음 명령어로 파일을 완전히 삭제할 수 있습니다:

srm Pictures/deleteme.jpg
리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

z 플래그를 추가하면 파일 내용을 0으로 덮어써 보안을 강화할 수 있고, v 플래그로 진행 과정에 대한 상세 정보를 확인할 수 있습니다. 디렉터리와 하위 디렉터리를 다룰 때는 재귀 모드를 위한 r 플래그도 함께 사용하세요. 기본 38회 덮어쓰기가 부담스럽다면 l 플래그로 패스 횟수를 "겨우" 두 번으로 줄여 시간을 단축할 수 있습니다(물론 보안 수준도 함께 낮아집니다). 이렇게 조합한 명령어는 다음과 같습니다:

srm -rlvz Pictures/deleteme.jpg

GUI 방식: Bleachbit 사용하기

명령줄 인터페이스가 부담스럽다면 Bleachbit이 최선의 선택입니다. 기본적으로 이 도구는 불필요하게 공간을 차지하는 "잔여 파일"을 찾아 정리하는 데 특화되어 있지만, 잘 알려지지 않은 기능으로 파일을 복구 불가능하게 직접 "파쇄(shred)"하는 기능도 갖추고 있습니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

우분투 호환 배포판이라면 소프트웨어 센터에서 설치하거나 다음 명령어를 사용하세요:

sudo apt install bleachbit

"편집(Edit) → 환경설정(Preferences)"으로 이동해 "복구 방지를 위해 파일 내용 덮어쓰기(Overwrite contents of files to prevent recovery)" 옵션을 활성화하면 보안이 한층 강화됩니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

메인 화면으로 돌아가 "파일(File) → 파쇄(Shred)"를 클릭하고, 팝업창에서 삭제할 파일을 선택합니다. "삭제(Delete)" 버튼을 누른 뒤, 정말 진행할 것인지 묻는 확인 창에서 확정하면 됩니다.

리눅스에서 파일을 복구 불가능하게 완전 삭제하는 방법

마지막으로 항상 기억해야 할 점이 있습니다. 저널링 파일 시스템의 사용과 각 HDD 펌웨어가 저장된 내용을 어떻게 "관리"하는지 알 수 없다는 사실 때문에, 가장 확실한 해결책은 하드 드라이브 전체를 지우거나, 더 나아가 장치를 물리적으로 파손하는 것입니다.