Linux上にあるファイルを安全に削除しよう

こんにちは、ディーネットの山田です。
さて、今回はLinux上にあるファイルを安全に削除する方法をご紹介したいと思います。

まず、普通にファイルを削除しただけならどうなるの?

消したはずのファイルがデータ復旧業者やextundeleteなどのソフトによって取り出されてしまう恐れがあります。
その為、削除してから廃棄したはずの機器等から顧客データが流出なんてこともありえる話です。

では、安全な削除って何なの?

rmコマンドでファイルを削除しただけでは、OSから見えなくなっただけでストレージ上には実体が残っていることがあります。
その為、srmコマンドを使ってダミーデータの複数回上書きを行った後ファイル削除するといったことが可能です。
※shredというコマンドが有名ですが、srmの方がディレクトリ配下を再帰的に削除してくれます。

実際にインストールしてみます

OS環境やアーキテクチャは以下の通り

# cat /etc/redhat-release
CentOS release 6.9 (Final)
# uname -m
x86_64

epelをインストール

srmコマンドは、epel上で公開されているのでepelをインストールする必要があります。

# rpm -ivh "http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm"

srmをインストール

# yum install --enablerepo=epel srm

インストールが完了したら、実際に使ってみます

使おうと思いましたが、まずヘルプを確認

# srm --help
Usage: srm [OPTION]... [FILE]...
Overwrite and remove (unlink) the files. By default use the 35-pass Gutmann
method to overwrite files.
-d, --directory       ignored (for compatability with rm(1))
-f, --force           ignore nonexistant files, never prompt
-i, --interactive     prompt before any removal
-x, --one-file-system do not cross file system boundaries
-s, --simple          overwrite with single pass using 0x00 (default)
-P, --openbsd         overwrite with three passes like OpenBSD rm
-D, --dod             overwrite with 7 US DoD compliant passes
-E, --doe             overwrite with 3 US DoE compliant passes
-G, --gutmann         overwrite with 35-pass Gutmann method
-C, --rcmp            overwrite with Royal Canadian Mounted Police passes
-r, -R, --recursive   remove the contents of directories
-v, --verbose         explain what is being done
-h, --help            display this help and exit
-V, --version         display version information and exit

この中で、データ消去方法に関するオプションは次のいずれかを指定できる

-s, --simple          overwrite with single pass using 0x00 (default)
-P, --openbsd         overwrite with three passes like OpenBSD rm
-D, --dod             overwrite with 7 US DoD compliant passes
-E, --doe             overwrite with 3 US DoE compliant passes
-G, --gutmann         overwrite with 35-pass Gutmann method
-C, --rcmp            overwrite with Royal Canadian Mounted Police passes

デフォルトは、ゼロ埋めが使われるようだが安全性を重視する方は、EオプションやDオプションを付けるとよいだろう。
また、特定のディレクトリ配下にある全てのファイルに対して行う場合はRオプションを付けるとよいだろう。

コマンド例

ゼロ埋めの削除方式でファイルを完全削除する場合

# srm testfile

3 US DoEの削除方式でディレクトリごと完全削除する場合

# srm -E -R hogedir/

7 US DoDの削除方式でディレクトリごと完全削除する場合

# srm -D -R 7 hogedir/

最後に

ファイルの安全な削除は、復元されないことを目的としたものになりますので、誤って削除してしまうと取り戻すことは非常に困難となりますので、注意が必要です。
※通常の削除でも取り戻すことは比較的困難なので、通常の削除=取り戻し可能とはならないですよ。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA