리눅스에서 파일을 안전하게 삭제하는 8가지 간단한 방법

하드 디스크의 내용을 완전히 지우는 방법을 살펴보았지만, 하나, 두 개 또는 수십 개의 파일을 영구적으로 삭제하고 싶을 때는 어떻게 될까요? 이 가이드는 리눅스에서 파일을 완전히 삭제하기 위한 가장 인기 있는 솔루션 몇 가지를 보여줍니다.
목차
- 휴지통 우회하기
- shred 사용하기
- 단일 파일에서 dd 사용하기
- wipe 사용하기
- Secure Delete 사용하기
- GUI 방식: Bleachbit 사용하기
- 자주 묻는 질문
참고: 현재 시중에 나와 있는 대부분의 SSD는 TRIM을 지원하여 여유 공간을 관리합니다. 이는 펌웨어의 기능으로, 내용을 재할당합니다. Ext3/4 및 Reiser FS와 같은 리눅스의 저널링 파일 시스템과 결합하면, 개별 파일의 복구를 넘어서는 삭제는 보장할 수 없습니다. 이러한 경우의 유일한 해결책은 불행히도 SSD의 모든 내용을 완전히 삭제하는 것입니다.
1. 휴지통 우회하기
파일을 삭제하면 휴지통(즉, 재활용 통)으로 이동합니다. 원하신다면 휴지통 폴더를 우회할 수 있습니다. 이렇게 하면 삭제된 파일이 휴지통에 남아 있지 않고 완전히 사라진 것으로 표시됩니다. 여전히 복구 가능하지만, 휴지통에서 접근할 수 있는 것보다 한 단계 나아간 것입니다.
팁: 파일을 휴지통으로 보내는 것을 여전히 선호하신다면, 시스템이 정기적으로 휴지통을 자동으로 비우도록 설정할 수 있습니다.

KDE가 포함된 Kubuntu와 같은 리눅스 배포판에서 파일을 삭제하려면 기본 파일 관리자 Dolphin을 실행합니다. “메뉴 -> 구성 -> Dolphin 구성 -> 휴지통”을 클릭하여 관련 설정에 도달합니다. 휴지통을 완전히 비활성화하는 옵션은 없지만, 대부분의 경우를 커버하는 멋진 트릭을 사용할 수 있습니다: 크기 제한을 활성화하고 가장 작은 값으로 줄입니다.

우리의 디스크에서는 이것이 10.97 MiB로 변환되었습니다. Dolphin은 이 값을 초과할 경우 휴지통의 내용을 지웁니다. 일반적인 데스크탑 사용으로는 아마도 매 시간마다 발생할 것입니다. Nautilus나 Nemo와 같은 다른 파일 관리자도 휴지통을 완전히 우회하는 옵션을 제공합니다.

장점
- 쉽게 할 수 있음
- 파일을 영구적으로 삭제하기 전에 유예 기간을 제공
단점
- 디스크에 남아 있는 메타데이터를 제거하지 않음
- 파일에서 데이터를 지우지 않음
2. shred 사용하기
우분투의 어떤 변형을 실행 중이라면, shred는 아마도 이미 포함되어 있을 것입니다. 즉시 사용하여 리눅스에서 영구적으로 삭제하고 싶은 민감한 파일을 완전히 삭제할 수 있습니다.
“image.png”를 영구적으로 삭제하고 싶다면, 다음을 사용하세요:
shred -uvz -n 4 image.pngu는 shred에게 파일을 덮어쓰기 전에 제거하라고 지시합니다.v는 자세한 정보를 표시합니다.z는 데이터가 차지했던 공간을 제로로 채워 복구 가능성을 더욱 줄입니다.-n 4는 다섯 번의 삭제 패스를 의미합니다: shred는 기본적으로 한 번의 패스를 수행하며, “-n”을 사용하면 추가 보안을 위해 필요한 추가 패스 수를 지정할 수 있습니다. 일반적인 합의는 다섯 번의 패스가 대부분의 사람들에게 충분하다는 것입니다.

여러 파일이나 폴더의 내용을 삭제하려면 와일드카드를 사용하세요:
shred -uvz -n 1 Pictures/images_0?.jpg
shred -uvz -n 4 Pictures/*.*첫 번째 경우에서 “?”는 단일 문자를 위한 와일드카드이며, shred는 “images_01.jpg” 및 “images_02.jpg”와 같은 파일을 삭제합니다.
두 번째 경우에서 shred는 “Pictures” 디렉토리의 모든 파일을 이름이나 유형에 관계없이 삭제합니다.
장점
- 단일 파일을 철저히 삭제함
- 여러 파일을 포함할 수 있는 glob 매칭 가능
단점
- 일부 옵션 플래그가 불명확함
- 완료하는 데 오랜 시간이 걸림
팁: 와일드카드 작동 방식을 배우려면 머신에서 정규 표현식을 시도해 보세요.
3. 단일 파일에서 dd 사용하기
Data Definition (dd) 프로그램은 오늘날 거의 모든 리눅스 배포판에서 발견되는 또 다른 유틸리티입니다. 그러나 shred와 달리 dd의 가장 큰 장점 중 하나는 리눅스에서 파일을 삭제하는 방법을 세밀하게 조정할 수 있다는 것입니다.
dd를 사용하려면 파일의 정확한 크기를 바이트 단위로 알아야 합니다:
ls -l /path/to/your/file | awk '{print $5}'
기존 파일에 대해 dd를 실행할 수 있습니다. 예를 들어, 이 명령은 파일을 널 문자로 채웁니다:
dd status=progress bs=your_file_size count=1 if=/dev/zero of=/path/to/your/file
널 문자로 파일을 채우는 것 외에도, dd를 강제로 파일을 의사 난수 데이터로 지우도록 할 수 있습니다:
dd status=progress bs=your_file_size count=1 if=/dev/urandom of=/path/to/your/file
이제 일반 rm 명령을 사용하여 파일을 삭제할 수 있습니다:
rm /path/to/your/file장점
- 다재다능 – 파일 삭제 이상의 작업 가능
- 파일 삭제를 세밀하게 조정 가능
단점
- 구문이 구식임, 심지어 명령줄 프로그램으로도
- 블록 크기에 대한 충분한 이해가 필요함
알아두면 좋은 점: 특정 파일을 삭제한 것에 대해 후회한다면, 리눅스에서 삭제된 파일을 복구하는 방법을 배우세요.
4. wipe 사용하기
Wipe는 또 다른 훌륭한 대안입니다. 배포판의 소프트웨어 센터에서 검색하여 설치하거나 다음을 사용하세요:
sudo apt install wipe
사용법은 shred보다 거의 간단합니다. wipe를 사용하여 리눅스에서 파일을 삭제하려면 다음을 실행하세요:
wipe Pictures/deleteme.png기본적으로 wipe는 추가 보안을 위해 너무 많은 시간 소모 패스를 사용하므로 귀찮을 수 있습니다. 또한 삭제에 대한 확인을 요청합니다.

f 플래그를 사용하여 확인을 없애고 r을 사용하여 하위 디렉토리로 재귀적으로 들어갑니다. c는 필요할 경우 chmod를 지시하며(파일이나 디렉토리에 쓰기 권한이 설정되어 있지 않을 때), q는 더 빠른 삭제를 위해 패스 수를 줄일 수 있습니다. q를 사용할 때는 소문자입니다. 대문자 “Q”를 뒤따라 요구하는 패스 수를 지정할 수 있습니다. 예를 들어, 이전의 간단한 명령은 다음과 같이 변경됩니다:
wipe -rfcq -Q 5 Pictures/deleteme.png장점
- 명령줄 경험이 적어도 사용하기 쉬움
- 합리적이고 안전한 기본 매개변수
단점
- 기본 매개변수가 대부분의 사용자에게 너무 엄격할 수 있음
- 활성 저널링과 잘 작동하지 않을 수 있음
5. Secure Delete 사용하기
SRM은 HDD에서 데이터를 안전하게 제거하는 데 특화된 Secure Delete 제품군의 도구 중 하나입니다. 이 작업에 가장 적합한 도구로 여겨집니다.
우분투 및 호환 배포판에 전체 Secure Delete 제품군을 설치하려면 다음을 사용하세요:
sudo apt install secure-delete
그 후, 다음을 사용하여 파일을 삭제할 수 있습니다:
srm Pictures/deleteme.png
파일의 내용을 제로로 덮어쓰는 z 플래그를 사용하여 추가 보안을 위해, 그리고 프로세스에 대한 자세한 정보를 얻기 위해 v를 사용하고 싶을 것입니다. 디렉토리 및 하위 디렉토리를 처리할 때는 재귀 모드를 위해 r 플래그도 포함하세요. 38번의 재작성이 너무 많다면, l 플래그를 사용하여 패스 수를 “단지“ 두 번으로 줄여 필요한 시간을 줄일 수 있습니다. 이렇게 하면 이전 명령이 다음과 같이 변경됩니다:
srm -rlvz Pictures/deleteme.png장점
- 옵션이 이해하기 쉽고 직관적임
- 파일 삭제가 매우 안전하고 철저함
단점
- 완료하는 데 오랜 시간이 걸림
- RAID를 사용하는 시스템에서 잘 작동하지 않음
6. Perl로 리눅스에서 파일 삭제하기
도구를 사용하는 것 외에도, Perl과 같은 간단한 프로그래밍 언어를 활용하여 리눅스에서 파일을 삭제할 수 있습니다. 예를 들어, 다음 코드 한 줄은 파일의 내용을 문자 “0:”로 대체합니다:
perl -i -pe 's/[^*]/0/g' /path/to/your/file-i플래그는 Perl에게 제공된 파일을 처리하도록 지시합니다.-pe플래그는 프로그램에게 파일의 내용을 위한 반복 루프를 생성하도록 지시합니다.'s/[^*]/0/g'는 치환 명령입니다.[^*]연산자는 파일 내의 모든 바이트와 일치하며,0은 각 바이트를 대체합니다.

작업이 완료되면, rm을 사용하여 수정된 파일을 제거할 수 있습니다:
rm /path/to/your/file장점
- Perl을 알고 있다면 새로운 구문을 배울 필요가 없음
- sed 치환과 같은 친숙한 추상화를 사용함
단점
- 명령은 파일에 대해 단일 패스만 수행함
- 임의 데이터로 내용을 대체하는 것은 안전하지 않을 수 있음
알아두면 좋은 점: 기본 시스템 작업을 위해 sed를 사용하여 치환 및 파일 스트림에 대해 더 많이 이해할 수 있습니다.
7. GUI 방식: Bleachbit 사용하기
명령줄을 피하고 싶다면, Bleachbit은 데이터를 안전하게 지우기 위한 최고의 솔루션 중 하나입니다. (Bleachbit은 리눅스 시스템을 정리하는 능력으로 더 잘 알려져 있습니다.) 기본적으로 이 도구는 필요하지 않은 “중복 파일”을 찾아내고 처리하는 데 특화되어 있습니다. 그러나 일반적으로 잊혀진 기능인 파일을 수동으로 “shred”하여 복구 불가능하게 만드는 기능도 포함되어 있습니다.

소프트웨어 센터를 통해 또는 다음을 사용하여 우분투 호환 배포판에 설치하세요:
sudo apt install bleachbit“메뉴 -> 기본 설정”을 클릭하고 “복구를 방지하기 위해 파일의 내용을 덮어쓰기” 옵션을 활성화하여 보안을 강화하세요.

메인 인터페이스로 돌아가서 “메뉴 -> 파일 샤레드”를 클릭하고 팝업 요청에서 아무것도 아닌 상태로 만들고 싶은 파일을 선택하세요. “삭제”를 클릭하고 Bleachbit에게 당신이 하려는 일에 확신이 있음을 확인하세요.
저널링 파일 시스템의 사용과 각 HDD의 펌웨어가 내용을 “관리”하는 방식을 알 수 없다는 점을 항상 염두에 두어야 하며, 최선의 해결책은 전체 HDD를 지우는 것이며, 더 나아가 장치를 물리적으로 파괴하는 것입니다.
장점
- 사용하기 쉬움
- 기본적으로 안전하게 설정할 수 있음
단점
- 디스크 삭제를 수행할 수 없음
- 여유 공간을 지우지 않음
8. dd로 여유 공간 지우기
안전한 삭제는 파일을 복구하기 어렵게 만들지만, 여전히 디스크의 메타데이터를 사용하여 복원할 수 있습니다. 이 문제를 해결하려면 머신에서 사용 가능한 모든 여유 공간을 지워야 합니다.
리눅스에서 이를 수행하는 가장 쉬운 방법은 dd를 사용하여 전체 하드 드라이브를 채울 파일을 만드는 것입니다:
dd status=progress if=/dev/zero of=/home/$USER/wipefree
작업이 완료되면 시스템에 “여유 공간” 파일을 디스크에 커밋하도록 지시해야 합니다:
sync마지막으로, rm을 사용하여 “여유 공간” 파일을 제거하세요:
rm /home/$USER/wipefree
장점
- 파일을 제거하지 않는 간단한 명령
- 모든 남아 있는 메타데이터를 지움
단점
- 완료하는 데 오랜 시간이 걸림
- 파일을 직접 삭제하지 않음
팁: “저장 공간 부족” 메시지를 피하려면 정기적으로 디스크 공간을 확인하고 관리하세요.
자주 묻는 질문
리눅스에서 원격 파일을 안전하게 삭제할 수 있나요?
원격 파일을 안전하게 삭제하는 것은 가능하지만, 원격 리눅스 시스템이 디스크 내의 파일을 백업하지 않을 것이라는 보장은 없습니다. 모든 원격 디스크와 시스템이 안전하지 않다고 가정하는 것이 좋습니다.
리눅스에서 파일을 안전하게 삭제한 후 완전히 사라지나요?
시스템이 이전 파일의 일부 메타데이터를 여전히 보유하고 있을 가능성이 있습니다. 예를 들어, 스왑 파티션은 시스템에서 안전하게 삭제된 정보가 포함될 수 있습니다.
이를 완화하려면 재부팅하고 디스크에 새 파일을 생성하세요.
파일을 삭제할 때 더 많은 패스가 더 좋나요?
반드시 그렇지는 않습니다. 대부분의 경우, 다섯 번의 패스는 데이터 복구 도구가 파일을 재생성하는 것을 방지해야 합니다. 다섯 번 이상의 패스에서 파일을 복구하는 것은 가능하지만, 매우 전문화된 도구와 프로그램이 필요합니다.
이미지 출처: Unsplash. 모든 수정 및 스크린샷은 Ramces Red에 의해 작성되었습니다.