디렉토리 나 파일이 실제로 삭제되었는지 어떻게 확인할 수 있습니까?


14

삭제 된 대부분의 파일은 실제로 디스크에서 제거되지 않으며 나중에 복구 할 수 있습니다.

삭제 한 디렉토리가 실제로 디스크에서 제거되도록하려면 어떻게해야합니까? 유틸리티가 있습니까?

데비안 리눅스를 사용하고 있습니다.


5
짧은 대답 : 당신은 할 수 없습니다! 긴 대답 : 디스크를 물리적으로 파괴하거나 질문을 다시 말하십시오 : 데이터를 복구하는 데 얼마나 많은 노력이 필요하며 그러한 시도의 성공률은 얼마입니까?
Marco

답변:


11

저장하기 전에 데이터를 암호화하십시오. 데이터를 지우려면 키를 닦으십시오.

이미 일반 텍스트로 데이터를 작성했다면 간단한 방법으로 데이터를 지우기가 너무 늦습니다. 여러 곳에 데이터 사본이 여러 개있을 수 있습니다.

  • 파일이 여러 번 쓰여진 경우 (덮어 쓰기 또는 교체 된 경우) 파일 시스템에서;
  • 파일 시스템이 조각 모음의 일부로 재 배열 된 경우
  • 저널에서 (이것은 데이터가 마지막으로 작성된 후 꽤 빨리 사라질 것입니다);
  • 백업에서;
  • 비활성화 된 섹터 (특히 SSD).

파일 시스템에서 데이터 사본을 제거하려면 사용 가능한 공간을 채우고 cat /dev/zero >somefile파일 시스템이 가득 차서 중지 될 때까지 기다리는 것이 방법입니다 . 전체 블록을 모두 덮어 씁니다.

데이터의 작은 부분은 다른 파일에서 부분적으로 사용되는 불완전한 블록에 남아있을 수 있습니다. 이것은 특히 디렉토리 이름을 저장하는 블록에 남아있을 수있는 파일 이름과 관련이 있습니다. 모든 것을 제거하려면 모든 파일을 백업하고 파일 시스템을 포함하는 장치를 완전히 덮어 쓴 다음 파일을 복원하십시오.

저장 매체는 더 이상 사용하지 않는 블록에 데이터를 보유 할 수 있습니다. 하드 디스크에서 이는 재 할당 된 불량 블록을 의미합니다. 이것은 디스크가 마모되기 시작할 때까지 매우 드문 일입니다. SSD에서 이는 마모 레벨링으로 인해 일반적으로 발생합니다. 두 경우 모두 해당 데이터에 액세스하려면 약간 비싼 하드웨어와 낭비 시간이있는 다소 정교한 공격자가 필요하기 때문에 위협이 매우 낮습니다. 이러한 위협에 관심이 있다면 데이터를 암호화하고 키를 두지 마십시오.

다중 패스를 수행하거나 0 대신 임의의 데이터를 사용하여 데이터를 지우는 방법에 대한 조언을 볼 수 있습니다 ( "Gutmann wipe"). 잊어 버리십시오 : 이것은 1980 년대 하드 디스크에만 적용됩니다 (그리고 심지어 데이터가 재구성하기에 저렴하지 않고 재구성이 다소 신뢰할 수 없음). 0으로 덮어 쓰는 것으로 충분합니다. 여러 랜덤 패스를하는 것은 구식 조언이나 뱀 오일입니다. 하드 드라이브에 0 (또는 임의의 데이터)을 한 번만 쓰는 것보다 여러 번 쓰는 것이 더 좋은 이유는 무엇입니까?를 참조하십시오 .


12

이라는 매우 인기있는 도구가 shred있습니다. 삭제되기 전에 모든 파일을 25 번 덮어 씁니다. 그것은 당신이 찾고있는 것입니다.

파쇄의 사용법은 매우 간단합니다

$ shred secret_archive.tar.gz

그러나 현대 시스템에서는 다음과 같은 경우 비효율적 이거나 쓸모가 없을shred 수 있습니다 .

  • 당신의 프로그램은 당신이 모르는 임시 파일을 생성합니다 (많은 GUI 어플리케이션처럼)
  • FS는 Copy-On-Write 기반 (ZFS 또는 Btrfs와 유사)
  • FS는 로그 기반 (NILFS와 유사)
  • FS는 데이터 저널링을 사용합니다 (일부 구성에서는 JFS, ReiserFS, XFS, ext3 또는 ext4와 유사)
  • FS는 압축을 사용합니다
  • FS는 다른 위치에 새로운 버전의 파일을 할당합니다
  • 스냅 샷 또는 백업이 있습니다
  • 네트워크 FS에 있습니다
  • 마모 레벨링 알고리즘이있는 SSD를 사용하고 있습니다

다른 잠재적으로 더 안전한 옵션은 다음과 같습니다.

  • 중요한 데이터 암호화
  • 전체 파티션 또는 저장 장치 덮어 쓰기
  • 장치의 물리적 파괴

1
내 manpage에 따르면 data = ordered (default) 및 data = writeback 모드를 shred사용할 때 ext3에서도 작동합니다 (ext4도 추측 합니다). 또한 간단한 대안이 있습니다. 삭제 된 파일을 덮어 쓰도록 파일 시스템의 나머지 공간을 모두 차지하는 거대한 파일을 만드십시오.
scai

감사. 방금 고 쳤어요 journaling -> data jornaling
12

@scai, 파일의 블록이 이미 재 할당되어 아직 작성되지 않았기 때문에 (거대한 데이터, 마지막 파일 블록 또는 디렉토리와 같은) 거대한 파일 방법이 반드시 작동하지는 않습니다.
Stéphane Chazelas

3
shred뱀 기름입니다 : head -c $(wc -c secret_archive.tar.gz)>! secret_archive.tar.gz` 보다 낫습니다 . 1980 년대 또는 1990 년대 초의 하드 디스크를 사용하지 않는 한 파쇄 사용은 항상 의미가 없습니다.
Gilles 'SO- 악마 그만해'

3
파쇄 / bcwipe / 등. 파일 시스템 수준의 뱀 기름입니다. 모든 파일 시스템 파일 작업 방식으로 인해 : 저장을 클릭 할 때마다 이전 파일이 삭제되고 (여유 공간에 있음) 새 파일이 생성됩니다. 파일 시스템이 이미 잊어 버린 경우 파쇄 할 수 없습니다. -장치 수준 또는 전체 사용 가능 공간 덮어 쓰기 수준이 다릅니다. Linux / Unix에서 사용할 수있는 몇 가지 빠른 무작위 데이터 소스 중 하나가 있습니다. / dev / (u) 많은 양의 데이터를 덮어 쓰기에 사용할 수 없을 정도로 느리다. - 하나의 조각 패스는 그냥 하나의 파일에 대한 장치 또는 여유 공간에 대한 확인, 그래서
frostschutz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.