shred
Linux에는 파일이 삭제될 때 데이터를 안전하게 덮어쓰는 GNU coreutils 패키지 기능이 있습니다 . BSD 시스템(특히 macOS)에서 이에 상응하는 것은 무엇입니까?
답변1
qorg11의 답변귀하의 질문에 대한 기술적으로 정확한 답변입니다(그러므로 투표하세요!).
현실은 그것이 shred
쓸모없다는 것이다. Linux뿐만 아니라 모든 BSD에는 "저장 매체의 바이트를 실제로 덮어쓰기 위해 파일을 덮어쓰는" 일이 발생하지 않는 최신 파일 시스템이 있습니다. 이는 파일 시스템의 구조와 저장 장치의 작동 방식이 다르기 때문입니다.
shred가 하는 일은 파일을 가져와 그 내용을 0으로 덮어쓰는 것입니다. 괜찮습니다. 하지만 많은 최신 파일 시스템은 "기록 중 복사" 방식입니다(즉, 파일의 내용을 변경할 때 저장 장치의 동일한 블록을 수정하지 않고 대신 영향을 받는 블록의 수정된 복사본을 만듭니다). . Apple의 APFS는 확실히 그러한 파일 시스템 중 하나입니다.
일부 파일 시스템에는 "희소 감지" 기능이 있습니다. 모두 0을 기록하므로 파일 시스템은 해당 0을 디스크에 기록하지 않고 파일에 구멍이 있음을 나타냅니다.
모든 SSD에는 쓰기 마모 레벨링 기능이 있습니다. 공격자가 메모리 칩에 저장된 원본 데이터에 액세스하는 것을 실제로 막을 수는 없습니다.모두시스템에 대한 쓰기는 기본적으로 기록된 데이터의 로드를 미디어 전체에 고르게 분산하기 위한 기록 중 복사입니다(동일한 셀에 기록하면 종종 번인이 발생하고 오류 가능성이 높아집니다. SSD는 액세스 대기 시간이 균일하므로 논리 블록이 널리 분산됩니다). 매체 전반에 걸쳐) 물리적 매체에는 단점이 없습니다. 반면 최신 파일 시스템 드라이버는 TRIM 작업(종종 "폐기"라고도 함)을 지원합니다. 이 작업은 SSD에 데이터를 0으로 설정할 수 있다는 신호를 보내며 SSD는 요청 시 0개의 논리 블록도 읽지 않을 가능성이 높습니다.
따라서 qorg11이 말했듯이 GNU가 아닌 시스템에서도 GNU coreutils가 설치되어 있으면 an은 shred
동일하지만 실제로는 마찬가지로 작동합니다.shred
rm
답변2
brew install coreutils
pkg install coreutils
macOS(Homebrew 사용), FreeBSD 또는 OpenBSD에 GNU coreutils를 설치 하고 실행할 수 pkg_add coreutils
있으며 Linux에서와 똑같이 작동합니다 gshred
.shred
답변3
rm
-P 플래그 자체가 있습니다.
OS X 매뉴얼 페이지는 이를 다음과 같이 문서화합니다.
-P Overwrite regular files before deleting them. Files are
overwritten three times, first with the byte pattern 0xff,
then 0x00, and then 0xff again, before they are deleted.
OpenBSD 매뉴얼 페이지:
-P Attempt to overwrite regular writable files before deleting them. Files
are overwritten once with a random pattern. Files with multiple links will
be unlinked but not overwritten.`
그러나 FreeBSD에서는 호환성을 위해 플래그를 유지하는 것 외에는 아무것도 하지 않습니다.
OpenBSD 매뉴얼 페이지의 BUGS 섹션에서는 제한 사항을 경고합니다.http://man.openbsd.org/rm#BUGS
-P 옵션은 기본 파일 시스템과 저장 매체가 모두 제자리에 기록되어 있다고 가정합니다. 이는 FFS 및 MS-DOS 파일 시스템과 자기 하드 드라이브에 해당되지만 대부분의 플래시 스토리지에는 해당되지 않습니다.
절단에도 적합합니다.