タイトルのとおり、これは可能ですか?
myfile.dat
という名前のファイルがあるとしましょう。rm
は機能しません。wipe
やshred
などのツールをインストールできない場合は、このファイルを自分で安全に消去できます「?
このようなツールを使用しても、このような安全な消去方法が機能するかどうかは、基盤となるファイルシステムに依存します。
最新のコピーオンライトベースのファイルシステムを使用している場合、これらのツールはファイルで使用されている以前のブロックに書き込みを行わないため、まったく機能しません。
安全な消去を行う場合は、ファイルシステムに組み込まれたその機能のサポートが必要か、ファイルシステムがファイルのディスクブロック番号を取得できるインターフェイスを実装する必要があります。ただし、後者の方法はセキュリティ上のリスクがあり、特権ユーザーのみがサポートできます。
実際にファイルレベルの消去がうまく機能するかどうかは、基盤となるファイルシステムとドライブハードウェアに大きく依存することに注意してください。 ext4などの最新のコピーオンライト(ジャーナリング)ファイルシステムは、元の場所のファイルデータを「上書き」しないため、shred
やwipe
などのほとんどのファイル指向の消去ツールが作成されます。何年も前に比べてはるかに有用ではありません。 SSDはブロックレベルでも同様の特性を備えています。詳細は https://www.howtogeek.com/234683/why-you-cant-securely-delete-a-file-and-what-to-do-instead/
したがって、これを旧式の磁気ハードドライブとジャーナル化されていない非COWファイルシステムで行うと想定する必要があります。 1990年代にはおそらく許容できる仮定ですが、2020年には現実的でしょうか?
すると、「基本的なUnix/linux cmmand line tools」は曖昧に思えます。 shred
はcoreutilsの一部であり、is「基本的なUnix/Linuxコマンドラインツール」のセットです。したがって、1つのレベルでshred
を使用すると、要件を満たします。
shred -zu FILENAME
それ以外の場合は、既存のファイルの内容を(おそらく繰り返し)上書きし、「自分で」削除する方法を求めているようです。 dd
を使用してファイルにゼロをコピーすることもできますが、dd
もcoreutilsの一部であるため、実際にshred
を使用するよりも「自分で」行うのはなぜですか。議論の余地があります。
「自分で」とは、shまたはbashの内部コマンドのみを使用することを意味しますか?
通常、この問題は重要であるため、ソリューションがどの程度歪んでいるかは関係ありません。
しかし、それが重要な場合、これは実際に実用的な解決策になる可能性があります。
ファイルを安全に削除するツールが存在する場合、実際にはファイルシステムを知る必要があります。したがって、これを一般的に実行できるツールは実際には存在できません。
ただし、ファイルシステムについて想定する必要はありません。
通常のrmコマンドを使用して、ファイルシステムレベルで、完全に忘れたいファイルを削除することから始めます。
$ rm -f myfile.dat
現在、ファイルシステムには存在しません。ただし、削除には時間がかかるため、コンテンツはファイルシステムの下のストレージにまだ存在していることがわかっています。また、ファイルシステム自体がまだどこにあるかについての情報を持っていることもよくあります。
ファイルの痕跡が残っていないファイルシステムが必要です。そしてファイルシステムの表面から見ると、すでに痕跡は残っていません!
次に、適切な新しい空のファイルシステムを別の場所に作成します。
次に、古いファイルシステムのコピーをファイルレベルで作成します。このファイルシステムは既にクリーンです。
ファイルからの情報がどこにあるかについてはまだよくわかりませんが、古いファイルシステムの下のストレージにあることがわかります。古いファイルシステムがまだ存在することを無視し、/dev/urandom
からそれに疑似ランダムバイトを書き込んでストレージをクリーンアップします。
データを削除するにはそれで十分です。
それがなくなったとまだ確信がない場合は、/dev/random
から実際の乱数を書き込もうとしないでください。そこから読み取ることができるランダム性はそれほど多くなく、他のソフトウェアもランダム性を必要とします。
リラックスするまで、/dev/urandom
の疑似乱数で上書きすることを繰り返します。
次に、新しいファイルシステム全体を元の保管場所に移動できます。できました。