Linuxでファイルを安全に削除する8つの簡単な方法

私たちはハードディスクの内容を完全に消去する方法を見てきましたが、1つ、2つ、または数ダースのファイルを永久に削除したい場合はどうなりますか?このガイドでは、Linuxでの完全なファイル削除のための最も人気のある解決策のいくつかを示します。
目次
- ゴミ箱をバイパスする
- shredを使用する
- 単一ファイルでddを使用する
- wipeを使用する
- Secure Deleteを使用する
- GUI方式:Bleachbitを使用する
- よくある質問
注意: 現在市場に出回っているほとんどのソリッドステートドライブは、TRIMをサポートしており、これはファームウェア内の機能で、内容を再割り当てします。Linuxのジャーナリングファイルシステム(Ext3/4やReiser FSなど)と組み合わせると、個々のファイルの回復を超えた削除は保証できません。その場合の唯一の解決策は、残念ながらSSD内のすべての内容を完全に消去することです。
1. ゴミ箱をバイパスする
ファイルを削除すると、それはゴミ箱(別名リサイクルビン)に移動します。ゴミ箱フォルダーをバイパスしたい場合は、そうすることができます。この方法では、削除されたファイルはゴミ箱に残らず、完全に消えたとマークされます。まだ回復可能ですが、ゴミ箱にアクセスできるよりは一歩進んでいます。
ヒント: それでもファイルをゴミ箱に送信したい場合は、システムに定期的にゴミ箱を自動的に空にするように設定できます。

KDEを使用したKubuntuのようなLinuxディストリビューションでファイルを削除するには、デフォルトのファイルマネージャーであるDolphinを実行します。「メニュー -> 設定 -> Dolphinの設定 -> ゴミ箱」をクリックして、関連する設定にアクセスします。ゴミ箱を完全に無効にするオプションはありませんが、ほとんどのケースをカバーする便利なトリックを使用できます:サイズ制限を有効にし、最小値に減らします。

私たちのディスクでは、これは10.97 MiBに相当しました。Dolphinは、その値を超えた場合にゴミ箱の内容を消去します。これは、通常のデスクトップ使用でおそらく毎時間発生するでしょう。他のファイルマネージャー(NautilusやNemoなど)には、ゴミ箱を完全にバイパスするオプションがあります。

利点
- 簡単に実行できる
- ファイルを永久に削除する前に猶予期間を与える
欠点
- ディスク内の残留メタデータを削除しない
- ファイルからデータを消去しない
2. shredを使用する
Ubuntuのいくつかのバリアントを実行している場合、shredはおそらくすでにその一部です。Linuxで消去したい機密ファイルを完全に削除するために、すぐに使用を開始できます。
「image.png」を永久に削除したい場合は、次のようにします:
shred -uvz -n 4 image.pnguはshredにファイルを上書きする前に削除するよう指示します。vは詳細情報を表示します。zはデータが占めていたスペースをゼロで埋めて、回復の可能性をさらに減らします。-n 4は5回の削除パスを意味します:shredはデフォルトで1回のパスを行い、「-n」を使用すると、追加のセキュリティのために必要なパスの数を指定できます。一般的な合意は、5回のパスがほとんどの人にとって十分であるということです。

複数のファイルやフォルダーの内容を削除するには、ワイルドカードを使用します:
shred -uvz -n 1 Pictures/images_0?.jpg
shred -uvz -n 4 Pictures/*.*最初のケースでは、「?」は単一の文字のワイルドカードで、shredは「images_01.jpg」や「images_02.jpg」と名付けられたファイルを削除します。
2番目のケースでは、shredは「Pictures」ディレクトリ内のすべてのファイルを、その名前やタイプに関係なく消去します。
利点
- 単一のファイルを徹底的に削除します
- 複数のファイルをカバーするためにグロブマッチングができます
欠点
- 一部のオプションフラグは不明瞭です
- 完了するまでに時間がかかります
ヒント: ワイルドカードの使い方を学ぶには、マシンで正規表現を試してみてください。
3. 単一ファイルでddを使用する
Data Definition(dd)プログラムは、今日ほとんどのLinuxディストリビューションに見られる別のユーティリティです。しかし、shredとは異なり、ddの最大の利点の1つは、Linuxでファイルを削除する方法を微調整できることです。
ddを使用するには、ファイルの正確なサイズをバイト単位で知っている必要があります:
ls -l /path/to/your/file | awk '{print $5}'
既存のファイルにddを実行できます。たとえば、このコマンドはファイルをヌル文字で埋めます:
dd status=progress bs=your_file_size count=1 if=/dev/zero of=/path/to/your/file
ヌル文字でファイルを埋める以外にも、ddに擬似乱数データでファイルを消去させることもできます:
dd status=progress bs=your_file_size count=1 if=/dev/urandom of=/path/to/your/file
その後、通常のrmコマンドを使用してファイルを削除できます:
rm /path/to/your/file利点
- 多用途 – ファイルの削除以上のことができます
- ファイル削除を微調整できます
欠点
- 構文は古く、コマンドラインプログラムとしても時代遅れです
- ブロックサイズをよく理解する必要があります
知っておくべきこと: 特定のファイルを削除したことを後悔した場合、Linuxで削除されたファイルを回復する方法を学んでください。
4. wipeを使用する
Wipeはもう1つの優れた代替手段です。ディストリビューションのソフトウェアセンターで検索してインストールするか、次のコマンドを使用します:
sudo apt install wipe
その使用はshredとほぼ同じくらい簡単です。Linuxでファイルを削除するには、次のように実行します:
wipe Pictures/deleteme.pngデフォルトでは、wipeは追加のセキュリティのために時間のかかるパスを多く使用するため、これが煩わしくなることがあります。さらに、削除の確認を要求します。

fフラグを使用して確認を省略し、rを使用してサブディレクトリに再帰します。cは必要に応じてchmodを指示し(ファイルやディレクトリに書き込み権限が設定されていない場合)、qはより迅速な削除のためにパスの数を減らすことを可能にします。qを使用する際は、小文字であることに注意してください。続けて大文字の「Q」を指定することで、要求するパスの数を指定できます。たとえば、以前の簡単なコマンドは、これらの調整を適用すると次のように変更されます:
wipe -rfcq -Q 5 Pictures/deleteme.png利点
- コマンドラインの経験が少なくても簡単に使用できる
- 理にかなった安全なデフォルトパラメータ
欠点
- デフォルトのパラメータはほとんどのユーザーには厳しすぎる可能性があります
- アクティブなジャーナリングと相性が悪い場合があります
5. Secure Deleteを使用する
SRMは、HDDからデータを安全に削除することに特化したSecure Deleteスイートのツールの1つです。この仕事に最適なツールとして多くの人に評価されています。
Ubuntuおよび互換性のあるディストリビューションにSecure Deleteスイート全体をインストールするには、次のコマンドを使用します:
sudo apt install secure-delete
その後、次のコマンドで任意のファイルを削除できます:
srm Pictures/deleteme.png
おそらく、zフラグを使用してファイルの内容をゼロで上書きし、追加のセキュリティのためにvを使用してプロセスに関する詳細情報を取得したいでしょう。ディレクトリやサブディレクトリを扱う場合は、再帰モードのためにrフラグも含めます。38回の上書きが多すぎる場合は、必要な時間とセキュリティを減らすために、lフラグを使用してパスの数を「わずか」2回に減らすことができます。これにより、前のコマンドは次のようになります:
srm -rlvz Pictures/deleteme.png利点
- オプションは理解しやすく直感的です
- ファイルの削除は非常に安全で徹底的です
欠点
- 完了するまでに時間がかかります
- RAIDを使用するシステムではうまく機能しません
6. PerlでLinuxのファイルを削除する
ツールを使用する以外にも、Perlのようなシンプルなプログラミング言語を利用してLinuxでファイルを削除することもできます。たとえば、次のコード行はファイルの内容を「0」で置き換えます:
perl -i -pe 's/[^*]/0/g' /path/to/your/file-iフラグはPerlにコマンドで提供されたファイルを処理するよう指示します。-peフラグはプログラムにファイルの内容のための反復ループを作成するよう指示します。's/[^*]/0/g'は置換コマンドです。[^*]演算子はファイル内のすべてのバイトに一致し、0が各バイトを置き換えます。

完了したら、次のようにして変更されたファイルをrmで削除できます:
rm /path/to/your/file利点
- Perlを知っていれば新しい構文を学ぶ必要がありません
- sed置換のような馴染みのある抽象を使用します
欠点
- コマンドはファイルに対して1回のパスしか行いません
- 任意のデータで内容を置き換えることは安全でない可能性があります
知っておくべきこと: 基本的なシステムタスクにsedを使用することで、置換やファイルストリームについてもっと理解できます。
7. GUI方式:Bleachbitを使用する
コマンドラインに対する嫌悪感がある場合、Bleachbitはデータを安全に消去するための最良の解決策の1つです。(Bleachbitは、Linuxシステムをクリーンアップする能力でよりよく知られています。)デフォルトでは、このツールは、必要なくなった後もスペースを占有し続ける「冗長ファイル」を発見して処分することに特化しています。しかし、通常忘れられがちな、任意のファイルを手動で「shred」して回復不可能にする能力も組み込まれています。

Ubuntu互換のディストリビューションにソフトウェアセンターを通じてインストールするか、次のコマンドを使用します:
sudo apt install bleachbit「メニュー -> 設定」をクリックし、「回復を防ぐためにファイルの内容を上書きする」オプションを有効にして、セキュリティを強化します。

メインインターフェースに戻り、「メニュー -> ファイルをshred」をクリックし、ポップアップで消去したいファイルを選択します。「削除」をクリックし、Bleachbitにあなたの意図を確認させます。
ジャーナリングファイルシステムの使用と、各HDDのファームウェアがその内容を「管理」する方法が不明であることを考慮すると、最良の解決策はHDD全体を消去すること、あるいはさらに良いことに、デバイスを物理的に破壊することです。
利点
- 簡単に使用できる
- デフォルトで安全に設定できます
欠点
- ディスクの消去はできません
- 空きスペースを消去しません
8. ddで空きスペースを消去する
安全な削除によりファイルの回復が難しくなりますが、ディスク上のメタデータを使用して再構築することはまだ可能です。この問題を解決するには、マシンのすべての空きスペースを消去します。
Linuxでこれを行う最も簡単な方法は、ddを使用してハードドライブ全体を埋めるファイルを作成することです:
dd status=progress if=/dev/zero of=/home/$USER/wipefree
完了したら、「空きスペース」ファイルをディスクにコミットするようにシステムに指示する必要があります:
sync最後に、「空きスペース」ファイルをrmで削除します:
rm /home/$USER/wipefree
利点
- ファイルを削除しないシンプルなコマンド
- 残留メタデータをすべてクリアします
欠点
- 完了するまでに時間がかかります
- ファイルを直接削除しません
ヒント: 「ストレージスペースが不足しています」というメッセージを避けるために、定期的にディスクスペースを確認し、管理してください。
よくある質問
リモートファイルをLinuxで安全に削除することは可能ですか?
リモートファイルを安全に削除することは可能ですが、リモートLinuxシステムがディスク内のファイルをバックアップしない保証はありません。すべてのリモートディスクとシステムが安全でないと仮定する方が良いです。
Linuxで安全に削除した後、ファイルは完全に消えますか?
システムが古いファイルのメタデータを保持している可能性があります。たとえば、スワップパーティションには、システム内での安全な削除に関する情報が含まれている可能性があります。
これを軽減するには、再起動してディスク上に新しいファイルを作成します。
ファイルを削除する際に、より多くのパスが良いですか?
必ずしもそうではありません。ほとんどの場合、5回のパスでデータ回復ツールがファイルを再作成するのを防ぐことができます。5回を超えるパスでファイルを回復することは可能ですが、高度に専門化されたツールやプログラムが必要です。
画像クレジット: Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。