タイトルのままこれは可能でしょうか?
myfile.dat
「私」というファイルがありますが、rm
操作を実行できないとしましょう。インストールwipe
やshred
他のツールをインストールできない場合は、「直接」ファイルを安全に削除できますか?
答え1
これらのツールを使用しても、このセキュリティ削除方法が有効であるかどうかは、デフォルトのファイルシステムによって異なります。
最新のCopy-On-Writeベースのファイルシステムを使用している場合、これらのツールはファイルで使用されている古いブロックを書き込まないため、まったく機能しません。
セキュリティの削除を実行するには、ファイルシステムに組み込まれている対応する機能をサポートする必要があります。または、ファイルシステムがファイルのディスクブロック番号を取得できるインターフェイスを実装する必要があります。ただし、後者の方法はセキュリティ上のリスクがあり、特権を持つユーザーのみをサポートできます。
答え2
実際にファイルレベルの削除がどれほどうまく機能するかは、基本的なファイルシステムとドライブハードウェアによって大きく異なります。最新の記録中に、コピー(ジャーナリング)ファイルシステム(例:ext4)は元の場所のファイルデータを「上書きしない」ため、ほとんどのファイル指向の削除ツール(例:およびshred
)wipe
は以前よりはるかに便利ではありません。 。 SSDはブロックレベルで同様の特性を持っています。https://www.howtogeek.com/234683/why-you-cant-securely-delete-a-file-and-what-to-do-instead/
したがって、古い磁気ハードドライブとジャーナリングされていないCOW以外のファイルシステムでこれを実行すると仮定する必要があります。おそらくこのような仮定は90年代には受け入れられましたが、2020年には現実になるのでしょうか。
まあ、「デフォルトのUnix / linuxコマンドラインツール」はあいまいです。 shred
coreutilsの一部です。はい「デフォルトの Unix/Linux コマンドラインツール」セットです。したがって、これを使用すると、ある程度shred
あなたの要件を満たすことができます!
shred -zu FILENAME
それ以外の場合は、既存のファイル(おそらく重複ファイル)の内容を上書きして「直接」削除する方法を探しているようです。dd
ファイルにゼロコピーを使用できますが、dd
これはcoreutilsの一部でもあるため、実際に使用するよりも「直接」使用する方が多くの理由はshred
議論の余地があります。
「自分」とは、shまたはbashの内部コマンドを使用することを意味しますか?
答え3
問題は一般的にマイナーであるため、解決策がどれだけ歪んでいるかは重要ではありません。
はい、安全にファイルを削除できます。
存在する原則として。
しかし、それが重要であれば、これは実際に実用的な解決策になるかもしれません。
ファイルを安全に削除できるツールがある場合は、実際にはファイルシステムに関する知識が必要です。したがって、これを実行できるツールが実際には利用できないことがよくあります。
ただし、ファイルシステムについて想定する必要はありません。
完全なファイルシステムを削除することができます!
まず、通常のrmコマンドを使用して、ファイルシステムレベルで完全に忘れたいファイルを削除します。
$ rm -f myfile.dat
これでファイルシステムに存在しなくなりました。しかし、コンテンツを削除するのに時間がかかるため、コンテンツはファイルシステムの下のリポジトリにまだ存在することがわかります。ファイルシステム自体にはまだその場所に関する情報が含まれている可能性があり、一般的である可能性があります。
私たちはファイルの跡を残さないファイルシステムが欲しいです。そしてファイルシステムの表面には痕跡が残りません!
これで、他の場所に適した新しい空のファイルシステムを作成します。
その後、ファイルレベルで古いファイルシステムをコピーすると、すでにきれいになりました!
ファイルの情報がまだどこにあるかはわかりませんが、その情報が古いファイルシステムのリポジトリにあることはわかっています。以前のファイルシステムがまだ存在することを無視し、疑似乱数バイトを記録してリポジトリをクリーンアップします/dev/urandom
。
データを削除すれば十分です。
それでもなくなったかどうかわからない場合は、実際の乱数を書こうとしないでください/dev/random
。読みやすいランダム性はあまりなく、他のソフトウェアにはある程度ランダム性が必要です。
リラックスするまで疑似乱数で繰り返し上書きします/dev/urandom
。
それではあなたはできます。新しいファイルシステム全体を元のストレージの場所に移動します。。完璧。