機密情報を含むファイルがある場合は、rmコマンドを使用してファイルを削除するか、Delキーを押すだけでは不十分な場合があります。通常、rmコマンドを使用してファイルを削除すると、ディレクトリリストからファイルが削除されます。削除されたファイルはハードディスクに残り、必要なスキルを持った攻撃者が回復して悪用する可能性があります。
Linuxでは、shredコマンドを使用すると、ファイルをぎこちないデータで繰り返し上書きすることにより、ファイルを安全に削除できます。これにより、削除されたファイルが復元された場合でも、元のデータの取得が非常に困難またはほぼ不可能になります。 Shredコマンドは、ファイルを上書きするだけでなく、指定されている場合はファイルも削除します。パーティションまたはディスク全体を上書きするためにも使用できます。
この記事では、Debian10OSでshredコマンドを使用してファイルを安全に削除する方法について説明しました。他のDebianおよびUbuntuバージョンでも同じ手順に従うことができます。コマンドラインオプションのいくつかについても説明しました。
シュレッドコマンドの操作
ShredコマンドはGNUCoreUtilitiesの1つであり、Debianを含むほぼすべてのLinuxシステムで使用できます。シュレッドコマンドの操作方法を見てみましょう:
シュレッドコマンド構文
シュレッドコマンドの構文は次のとおりです。
$ shred option <FILE>
「ファイル」はファイルまたは任意のハードディスクパーティションです。
オプションを指定せずにshredコマンドを使用すると、ファイルがぎこちないデータで複数回上書きされます。 shredコマンドの機能を理解するために、テキストを含む「testfile.txt」という名前のテストファイルを作成しましょう。
$ echo “this file contains some sample text” > testfile.txt
サンプルファイルは次のようになります。
ファイルを作成したら、ファイルのサイズも確認してください。後でそれを使用して、細断されたファイルのサイズと比較します。
$ ls -l testfile.txt
次に、shredコマンド(コマンドラインオプションなし)を実行してから、シュレッドするファイル名を実行します。
$ shred testfile.txt
上記のコマンドは、 testfile.txtを上書きします 3回(デフォルト)。テストファイルに何が起こったかを確認するには、catコマンドを呼び出します。
$ cat testfile.txt
catコマンドの出力からは、ファイル内のジブリッシュのみが表示されます。
また、ファイルサイズを表示すると、ファイルサイズが大きくなっていることがわかります。
シュレッドコマンドラインオプション
shredコマンドには、その機能を拡張できるようにするためのいくつかのコマンドラインオプションがあります。これらのオプションがどのように機能するかの例をいくつか見てみましょう。
詳細出力
-vまたは–verboseオプションを使用すると、バックグラウンドで何が起こっているかを確認できます。
$ shred -v testfile.txt
次の出力は、ファイルを乱数で上書きする3つのパスを示しています。
注:次に、以下のすべての例で、出力を表示するために-vオプションを使用します。
複数のファイルを上書きする
複数のファイルがある場合は、個別のコマンドを使用してファイルを1つずつ細断処理する代わりに、単一のコマンドを使用してそれらを細断処理できます。複数のファイルを細断処理するには、それらすべてを引数として(スペースで区切って)入力するか、ワイルドカード文字を使用して、同じ拡張子を持つすべてのファイルを指定します。
$ shred -v testfile1.txt testfile2.txt testfile3.txt
次のスクリーンショットに示すように、3つのファイルすべてが1つのプロセスで細断処理されます。
ドライブの上書き
shredコマンドを使用して、ドライブとパーティションを上書きすることもできます。たとえば、 / dev / sda2のすべてのデータを上書きするには パーティションの場合、コマンドは次のようになります:
$ sudo shred -v /dev/sda2
ゼロで上書き
通常、shredコマンドはファイルをランダムデータで上書きします。ただし、このデバイスでシュレッダー操作が実行されたことがシステム上で目立ちます。シュレッダーコマンドで-zまたは–zeroオプションを使用して、シュレッダー処理を非表示にすることができます。
-zまたは–zeroオプションを指定してshredコマンドを使用すると、最初にファイルが乱数で上書きされ、最後にゼロで上書きされます。
$ shred -vz testfile.txt
上記の出力では、ファイルを乱数で3回上書きした後、シュレッドが最終的にファイルをゼロで上書きしたことがわかります。
選択的に上書き
shredコマンドは、ファイルをランダムなジャンクで3回上書きします。上書きパスの数を増やすには、-nまたは–iterationsオプションを使用します。
たとえば、 testfile.txtを細断処理します 5回の上書きパスを使用すると、コマンドは次のようになります。
$ shred -vn5 testfile.txt
最初のxバイトのみを上書きする
shredコマンドのデフォルトの動作は、ファイル全体を上書きすることです。 shredコマンドで-sまたは–sizeオプションを使用すると、最初のxバイトのみを上書きできます。たとえば、 testfile.txtの最初の6バイトのみを上書きするには 、コマンドは次のようになります:
$ shred -vs6 testfile.txt
上記のコマンドは、指定されたファイルの最初の6バイトのみを上書きします。 catコマンドを呼び出すことで確認できます。
上書き後にファイルを削除
前に説明したように、shredコマンドは、コマンドラインオプションなしでファイルを使用した場合にのみファイルを上書きします。ただし、上書きした後は、shredコマンドで-uまたは–removeオプションを使用してファイルを削除することもできます。削除する前にファイルの名前も変更されることに注意してください。
$ shred -vu testfile.txt
上記の出力から、ファイルが上書きされて名前が変更された後、最終的に削除されたことがわかります。
ヘルプを表示
shredコマンドの詳細については、–helpオプションを使用するか、manページにアクセスしてください。
$ shred --help
または
$ man shred
この記事では、Debian10Busterシステムでshredコマンドをさまざまなコマンドラインオプションとともに使用する方法を学びました。 shredコマンドがファイルを上書きおよび削除し、回復ツールを使用してファイルを回復するのが困難になることを確認しました。