예, 안전하게 파일을 삭제할 수 있습니다.

예, 안전하게 파일을 삭제할 수 있습니다.

제목 그대로 이게 가능할까요?

myfile.dat'나'라는 파일이 있는데 rm작업을 수행할 수 없다고 가정해 보겠습니다. 설치 wipeshred다른 도구를 설치할 수 없는 경우 "직접" 파일을 안전하게 삭제할 수 있습니까?

답변1

이러한 도구를 사용하더라도 이 보안 삭제 방법이 효과적인지 여부는 기본 파일 시스템에 따라 다릅니다.

최신 Copy-On-Write 기반 파일 시스템을 사용하는 경우 이러한 도구는 파일에서 사용되는 이전 블록을 쓰지 않으므로 전혀 작동하지 않습니다.

보안 삭제를 수행하려면 파일 시스템에 내장된 해당 기능을 지원해야 하거나 파일 시스템이 파일의 디스크 블록 번호를 검색할 수 있는 인터페이스를 구현해야 합니다. 그러나 후자의 방법은 보안 위험이 있으며 권한이 있는 사용자만 지원할 수 있습니다.

답변2

실제로 파일 수준 삭제가 얼마나 잘 작동하는지는 기본 파일 시스템과 드라이브 하드웨어에 따라 크게 달라집니다. 최신 기록 중 복사(저널링) 파일 시스템(예: ext4)은 원래 위치의 파일 데이터를 "덮어쓰지" 않으므로 대부분의 파일 지향 삭제 도구(예: shredwipe)가 예전보다 훨씬 덜 유용 해집니다. . SSD는 블록 수준에서 유사한 특성을 갖습니다.https://www.howtogeek.com/234683/why-you-cant-securely-delete-a-file-and-what-to-do-instead/

따라서 오래된 자기 하드 드라이브와 저널링되지 않은 COW가 아닌 파일 시스템에서 이 작업을 수행한다고 가정해야 합니다. 아마도 이러한 가정은 90년대에는 받아들여질 수 있었지만, 2020년에는 현실이 될까요?

글쎄, "기본 Unix/linux 명령줄 도구"는 모호해 보입니다. shredcoreutils의 일부입니다."기본 Unix/Linux 명령줄 도구" 세트입니다. 따라서 이를 사용하면 어느 정도 shred귀하의 요구 사항을 충족할 수 있습니다!

shred -zu FILENAME

그렇지 않으면 기존 파일(아마도 중복 파일)의 내용을 덮어쓴 다음 "직접" 삭제하는 방법을 찾고 있는 것 같습니다. dd파일에 0 복사를 사용할 수 있지만 dd이는 coreutils의 일부이기도 하므로 실제로 사용하는 것보다 "직접" 사용하는 것이 더 많은 이유는 shred논쟁의 여지가 있습니다.

"나 자신"은 sh 또는 bash 내부 명령을 사용하는 것을 의미합니까?

답변3

문제는 일반적으로 사소하기 때문에 솔루션이 얼마나 왜곡되었는지는 중요하지 않을 수 있습니다.

예, 안전하게 파일을 삭제할 수 있습니다.

존재하다원칙적으로.

그러나 그것이 중요하다면 이것이 실제로 실용적인 해결책이 될 수도 있습니다.

파일을 안전하게 삭제할 수 있는 도구가 존재하는 경우 실제로는 파일 시스템에 대한 지식이 필요합니다. 따라서 이를 수행할 수 있는 도구가 실제로 가능하지 않은 경우가 많습니다.

그러나 파일 시스템에 대해 가정할 필요는 없습니다.

전체 파일 시스템을 삭제할 수 있습니다!

먼저 일반적인 rm 명령을 사용하여 파일 시스템 수준에서 완전히 잊고 싶은 파일을 삭제합니다.

$ rm -f myfile.dat

이제 더 이상 파일 시스템에 존재하지 않습니다. 하지만 콘텐츠를 삭제하는 데 시간이 걸리기 때문에 콘텐츠가 파일 시스템 아래 저장소에 여전히 존재한다는 것을 알고 있습니다. 파일 시스템 자체에는 여전히 해당 위치에 대한 정보가 있을 수 있으며 심지어 일반적일 수도 있습니다.

우리는 파일 흔적을 남기지 않는 파일 시스템을 원합니다. 그리고파일 시스템 표면에는 흔적이 남지 않습니다!

이제 다른 곳에 적합한 새 빈 파일 시스템을 만듭니다.

그런 다음 파일 수준에서 이전 파일 시스템을 복사하면 이미 깨끗해졌습니다!

파일의 정보가 아직 어디에 있는지는 알 수 없지만 해당 정보가 이전 파일 시스템의 저장소에 있다는 것은 알고 있습니다. 우리는 이전 파일 시스템이 여전히 존재한다는 사실을 무시하고 의사 난수 바이트를 기록하여 저장소를 정리합니다 /dev/urandom.

데이터를 삭제하면 충분합니다.
그래도 없어졌는지 확실하지 않다면 실제 난수를 쓰려고 하지 마세요 /dev/random. 읽을 수 있는 무작위성이 많지 않으며 다른 소프트웨어에는 어느 정도 무작위성이 필요합니다.

긴장이 풀릴 때까지 의사 난수로 반복해서 덮어쓰세요 /dev/urandom.

그럼 넌 할 수 있어새 파일 시스템 전체를 원래 저장소 위치로 이동합니다.. 완벽한.

관련 정보