shred — 파일 내용 안전 삭제
Linux / 파일 및 디스크 관리 / shred.html
파일을 여러 번 덮어써 복구하기 어렵게 만드는 coreutils 삭제 도구.
기본 정보
| 명령어 이름 | shred |
|---|---|
| 한 줄 소개 | 파일을 여러 번 덮어써 복구하기 어렵게 만드는 coreutils 삭제 도구. |
| 제공 | GNU coreutils (모든 Linux 배포판 기본 탑재) |
| 공식 문서 | https://man7.org/linux/man-pages/man1/shred.1.html |
| 지원 운영체제 | Linux, macOS, WSL |
| 설치 여부 | 기본 탑재 (별도 설치 불필요) |
| 분류 | 리눅스 파일·디스크 관리 (태그: 삭제, 보안, 덮어쓰기, coreutils) |
이 명령어는 무엇인가?
shred는 파일을 삭제하기 전에 임의 데이터로 여러 번 덮어씁니다. 단순 rm과 달리 디스크에 남은 흔적을 줄이려는 목적으로 사용합니다.
저널링 파일시스템, SSD, 스냅샷 환경에서는 덮어쓴 위치가 실제 물리 블록과 다를 수 있어 완전한 삭제를 보장하지 않습니다. 이런 환경에서는 전체 디스크 암호화가 더 확실합니다.
어떤 문제를 해결하는가?
- 민감한 파일을 복구하기 어렵게 삭제해야 할 때
- 스크립트에서 임시 파일을 확실히 지워야 할 때
- 기존 파일을 0으로 덮어쓰고 싶을 때
- 삭제 전에 덮어쓰기 횟수를 지정할 때
주요 기능
반복 덮어쓰기
-n 옵션으로 덮어쓰기 횟수를 지정합니다(기본 3회).
- 활용 상황: 민감 파일 삭제 직전
- 얻는 결과: 덮어쓴 뒤 삭제된 파일
- 제한 사항: SSD에서는 마모 평준화 때문에 효과가 제한적입니다.
0으로 덮어쓰기
-z 옵션은 마지막에 0을 채워 흔적을 감춥니다.
- 활용 상황: 덮어쓴 흔적을 남기고 싶지 않을 때
- 얻는 결과: 0으로 채워진 뒤 삭제된 파일
- 제한 사항: 전체 디스크에는 별도 도구가 더 적합합니다.
파일 삭제까지 수행
-u 옵션은 덮어쓴 후 파일을 실제로 삭제합니다.
- 활용 상황: 덮어쓰기와 삭제를 한 번에 처리할 때
- 얻는 결과: 디렉토리에서 사라진 파일
- 제한 사항: 덮어쓰기 도중 중단되면 파일이 남을 수 있습니다.
설치 및 실행
설치 여부 확인
shred --version
sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora
실제 사용 예제
덮어쓴 뒤 삭제
7회 덮어쓰고 마지막에 0으로 채운 뒤 삭제합니다.
shred -n 7 -z -u secret.key
전체 디스크 덮어쓰기 경고
장치를 직접 지정하면 모든 데이터가 지워지므로 대상 확인이 필수입니다.
lsblk
# destructive: overwrite the whole device only after confirming the name
shred -n 1 -z /dev/sdb