Linuxコマンドsrmの使い方と5つのオプション

Linuxコマンドsrmは、ファイルを削除する際に複数回上書きすることで、ファイルを完全に削除できます。多くのLinuxユーザーは、ファイルを削除する際に主にrmコマンドを使用します。しかし、rmコマンドで削除されたファイルは、実際には完全に消去されず、ディスクに痕跡が残り、復元プログラムを使って復元できる場合があります。このため、敏感なデータを扱う際やセキュリティが重要な環境では、rmコマンドの代わりにファイルを完全に削除できるコマンドが必要です。その一つがsrmコマンドです。

Linuxコマンドsrmとは?

srmは「secure remove」の略で、ファイルを完全に削除し、復元不可能にします。srmは、ファイルを削除する際にディスクに保存されたデータを複数回上書きし、痕跡を残さないため、セキュリティが重要なファイルを削除する際に使用されます。特に、個人情報や企業の機密ファイルなど、重要なデータを削除する際に有用です。

srmがデフォルトで使用する38回の上書き方式は次の通りです。まず、ファイルのすべてのビットを1で埋めます。そして5回はランダムな値で埋めます。さらにPeter Gutmannが定義した特別な値で27回埋め、最後にランダムな値で5回上書きします。その後、ファイル名をランダムな値に変更し、ファイルを最終的に削除します。

srm vs rm

rmとsrmの最大の違いは、データの削除方法です。rmはファイルを削除しても、そのデータが残っていることが多く、復元が可能ですが、srmは複数回データを上書きすることで、復元を難しくします。そのため、セキュリティが求められる環境ではsrmを使用することが推奨されます。srmと類似した機能を持つコマンドとして、wipeコマンドがあります。

srmインストール方法

ほとんどのLinuxディストリビューションには、デフォルトでsrmコマンドが含まれていないため、別途インストールが必要です。UbuntuやDebian系では、次のコマンドでインストールできます。

sudo apt install secure-delete
ShellScript

インストール後は、srmコマンドを使用できるようになります。

srmコマンド基本使い方

srmコマンドの基本的な使い方は非常に簡単です。ファイルを削除する際に、srmの後にファイルパスを入力するだけです。

srm filename
ShellScript

たとえば、example.txtというファイルを削除したい場合は、次のように入力します。

srm example.txt
ShellScript

これで、example.txtファイルは複数回の上書きプロセスを経て完全に削除されます。削除プロセスが完了すると、コマンドプロンプトが表示されます。特にメッセージは表示されません。

図1. Linuxコマンドsrm: 基本的な使い方
図1. Linuxコマンドsrm: 基本的な使い方

srmコマンド主要オプション

srmコマンドは、ファイル削除の方法をカスタマイズできるさまざまなオプションを提供しています。主要なオプションは次の通りです。

-r (recursive)

ディレクトリ内のすべてのファイルを削除したい場合に使用するオプションです。-rオプションを使うと、ディレクトリとその中に含まれるすべてのファイルやサブディレクトリまで削除されます。

srm -r subdir
ShellScript

-v (verbose)

削除プロセスを詳細に確認したい場合に使用するオプションです。-vオプションを使うと、ファイルが削除されるプロセスをターミナル上で確認できます。

srm -v filename
ShellScript

-vオプションを使うと、次のようにファイルの削除プロセスを詳細に確認できます。

図2. Linuxコマンドsrm: -vオプションで削除プロセスを確認
図2. Linuxコマンドsrm: -vオプションで削除プロセスを確認

-l (less secure)

セキュリティレベルがやや低い削除方式を使用したい場合に使用するオプションです。デフォルトではsrmは非常に高いセキュリティレベルを提供するために38回の上書きを行いますが、-lオプションを使うと上書き回数を2回に減らし、削除速度を向上させることができます。

srm -l filename
ShellScript

-lオプションを使用すると、2回だけ上書きされます。1回はすべての値を1で埋め、もう1回はランダムな値で埋める方式です。

図3. Linuxコマンドsrm: -lオプションで2回だけ上書き
図3. Linuxコマンドsrm: -lオプションで2回だけ上書き

-f (fast and insecure mode)

-fオプションを使用すると、迅速な非セキュリティモードで削除します。/dev/urandomや同期モードを使用しません。

srm -f filename
ShellScript

迅速なモードで削除されても、上書きは38回行われますが、ランダムな値で上書きすることや同期モードは使用されません。

図4. Linuxコマンドsrm: -fオプションで迅速に削除
図4. Linuxコマンドsrm: -fオプションで迅速に削除

-z (zero)

ファイルを38回上書き削除した後、ディスクの残りスペースを0で上書きするオプションです。このオプションは、ファイルを削除した後、そのスペースのすべてのビットを0で埋めて整理したい場合に役立ちます。

srm -z filename
ShellScript

使用時の注意点

srmコマンドを使用する際には、いくつかの注意点があります。

  1. 復元不可能性: wipeコマンドでは削除前に確認プロセスがありますが、srmはすぐにファイルを削除します。wipeと同様に、srmで削除されたファイルは復元できません。誤って重要なファイルを削除しないよう、注意が必要です。削除前に必ず確認する習慣をつけましょう。
  2. パフォーマンス低下: srmコマンドはファイルを複数回上書きするため、一般的なrmコマンドよりも時間がかかります。特に大きなファイルや多数のファイルを削除する際には、削除時間が大幅に延びることがあります。
  3. ディスク損傷の可能性: 多数のファイルを繰り返し上書きすると、SSDなどのフラッシュストレージの寿命を縮める可能性があります。フラッシュメモリを使用する場合、srmコマンドの使用には慎重になる必要があります。

有効な利用方法

Linuxコマンドsrmは、特にセキュリティが重要な業務環境で非常に有効です。次のような場面で活用できます。

  • 個人情報保護: ユーザー情報や顧客データを安全に削除することで、データ漏洩を防ぐことができます。
  • ディスク整理: 古いファイルを削除する際に、痕跡を残さずに整理できます。特に、ディスクを中古で販売したり譲渡する際には、データ漏洩のリスクを減らすことができます。

また、srmコマンドを定期的にスクリプトに組み込んで、自動的に重要なファイルを定期的に削除する設定も可能です。これにより、敏感なデータを手作業で削除する必要がなく、効率的に管理できます。

まとめ

Linuxコマンドsrmは、単純なファイル削除を超えて、データを完全に削除し、復元不可能にする強力なツールです。セキュリティが重要な場面でファイルを削除する際には、rmの代わりにsrmを使用することで、データを安全に管理することができます。ただし、使用時にはパフォーマンスの低下や誤操作による復元不可能性に注意が必要であり、SSDなどのストレージを使用する場合は慎重に利用することが推奨されます。

リファレンス

関連ポスト

コメントする