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


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.