리눅스 시스템에서 shred 명령으로 파일 완전히 삭제하기 (복구 불가능하게 하기)

리눅스/OS 일반|2024. 6. 24. 10:11
반응형

shred 명령은 Unix 또는 Linux 계열 운영 체제에서 파일이나 디스크의 데이터를 영구적으로 삭제하는 데 사용되는 명령입니다.

shred 는 파일의 데이터를 여러 번 덮어써서 원래 데이터를 복구할 수 없도록 만듭니다. 이는 보안상 중요한 데이터를 안전하게 삭제할 때 유용합니다.

 

 

1. shred 명령 사용법

 

기본적인 shred 명령 사용법은 다음과 같습니다:

# shred [옵션] 파일명

 

주요 옵션
-n, --iterations=N: 파일을 덮어쓰는 횟수를 지정합니다. 기본값은 3입니다.
-z, --zero: 마지막 덮어쓰기 시 모든 비트를 0으로 설정합니다. 이는 덮어쓰기가 감지되지 않도록 합니다.
-u, --remove: 파일을 덮어쓴 후 삭제합니다.
-v, --verbose: 진행 상황을 자세히 출력합니다.
-f, --force: 읽기 전용 파일의 쓰기 권한을 변경하여 덮어씁니다.
-s, --size=N: 덮어쓰는 크기를 지정합니다.

 

 

2. 예제

 

파일을 3번 덮어쓰고 삭제
# shred -u 파일명

 

파일을 5번 덮어쓰고 마지막에 0으로 덮어쓰기
# shred -n 5 -z 파일명

 

진행 상황을 출력하면서 파일을 덮어쓰고 삭제

# shred -v -u 파일명

 

 

3. 주의 사항

 

- 저널링 파일 시스템 : shred 는 파일 시스템이 저널링을 사용하는 경우 (예: ext3, ext4, XFS 등) 덮어쓰기 효과가 제한될 수 있습니다. 저널링 파일 시스템에서는 파일의 메타데이터를 기록하므로 파일이 완전히 덮어쓰여지지 않을 수 있습니다.
- SSD 와 플래시 메모리 : SSD 와 플래시 메모리 장치는 내부적으로 쓰기 동작을 최적화하므로, shred 명령이 모든 데이터를 덮어쓰지 않을 수 있습니다. 이러한 장치에서는 장치 자체의 보안 삭제 기능을 사용하는 것이 좋습니다.
- 디렉터리 : shred 명령은 디렉터리 자체를 삭제할 수 없습니다. 디렉터리 내의 파일을 개별적으로 삭제해야 합니다.

 

 

4. 예제 시나리오


1) 중요한 텍스트 파일 삭제
중요한 텍스트 파일 sensitive_data.txt 를 안전하게 삭제하고 싶다면 다음과 같이 할 수 있습니다:
# shred -u -v sensitive_data.txt

 

이 명령은 sensitive_data.txt 파일을 덮어쓰고, 마지막에 삭제하며, 진행 상황을 출력합니다.

2) 특정 파일을 여러 번 덮어쓰기
파일 data.bin을 7번 덮어쓰고 마지막에 0으로 덮어쓰기:
# shred -n 7 -z -v data.bin

 

이 명령은 data.bin 파일을 7번 덮어쓰고, 마지막에 0으로 덮어쓰며, 진행 상황을 출력합니다.

shred 명령은 파일을 영구적으로 삭제하여 데이터 복구를 어렵게 만들 때 유용하지만, 사용 환경에 따라 제한이 있을 수 있으므로 주의해서 사용해야 합니다.

 

반응형

댓글()