いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.141 / 読者数:1286名

こんばんは、うすだです。

小学校は、一昨日に終業式を迎え、早くも夏休みに突入しております。
そして、いきなりの3連休。これはもう遊び倒すしかないということで、 早速、大阪のお友だちが、どーんと泊りがけで遊びにきております。

それはもう、にぎやかで、愉快です。
こんなときに、ひとりだけ、お仕事をするわけにはいきません。
多少テンパっている部分もありますが、後からがんばることにして、 ここは存分に弾けて、楽しく過ごしたいと思います。

唯一の失敗は、次回は7月20日に発行しますと、前回、 無邪気かつ能天気に書いてしまったことでしょうか…。

そんなにぎやかな環境下から、今回も、はりきってお送りしましょう!

今回のお題 - データをしっかり消去する

サーバはみんなのものですので、いろんなひとが、さまざまな用途で使用し、 多種多様なファイルを置いたり消したりしていると思います。

ときには、個人的なファイルや、どこかのシステムの重要なファイルを、 一瞬だけ置いて、使用後すぐに消去したりといったことも、 行われることがあるのではないかと推測します。

しかし、ファイルを消した後、ほんとうにきれいさっぱり消去されているのか、 という素朴な疑問が、ふつふつと湧いてきたりもします。

システム管理者たるもの、そのあたりを曖昧にせず、はっきりさせた上で、 日々の業務に翻弄されるべきではないでしょうか。

というわけで、今回は、ファイルを消去した後、中身も完全に消え去っているのか、 もしくは残っているならどうすればよいのか、といったあたりを、 実際に確認などしてみたいと思います。


タイトルからして、結論がわかっているような感じですが、ここは知らぬふりをして、 押し通していきたいと思います。

まずは、小さなファイルシステムを作成し、その上で、 ファイルを消したときにまるっと消え去るのかどうか、確認してみたいと思います。

以下のように、1MB のファイル tameshi.img を、 dd コマンドを使用して作成してみましょう。
(サイズは 1MB じゃなくてもよいです。もちろん、 ファイル名も別の名前にしていただいて構いません。便宜上、 決め打ちにして話を進めます。)

  # dd if=/dev/zero of=tameshi.img bs=1M count=1
  # ls -l tameshi.img
  -rw-r--r-- 1 root root 1048576  7月19日 01:23 tameshi.img

そして、ext2 ファイルシステムに仕立てあげて、マウントします。
(下記では /mnt/tmp にマウントしていますが、先ほどと同様、 マウントポイントを別のディレクトリにしていただいて構いません。)

  # mkfs.ext2 -m 0 -F tameshi.img
  # mount -o loop tameshi.img /mnt/tmp
  # mount | grep /mnt/tmp
  /root/tameshi.img on /mnt/tmp type ext2 (rw,loop=/dev/loop0)
  # ls /mnt/tmp
  lost+found/

はい、無事にマウントできました。

では試しに、/etc/shadow をコピーして、アンマウントします。

  # cp -p /etc/shadow /mnt/tmp
  # umount /mnt/tmp

そうしますと、もちろん、/etc/shadow の内容が、 ファイルシステムの中に含まれていることになりますよね。

  # strings tameshi.img | grep root
  root:秘密です:13257:0:99999:7:::

とりあえず、root のエントリだけを確認してみましたが、 当然ばっちり含まれております。

ここで、再度マウントして、ファイルを消してみたいと思います。

  # mount -o loop tameshi.img /mnt/tmp
  # rm -f /mnt/tmp/shadow

ファイルとしては存在しなくなりましたが、はたして中身も消え去ったのでしょうか。 それとも残っているのでしょうか。
では、アンマウントして、先ほどと同様に確認してみましょう。

  # umount /mnt/tmp
  # strings tameshi.img | grep root
  root:秘密です:13257:0:99999:7:::

…あ、ばっちり残っていますね。

ファイルを消去しても、たどれなくなるだけで、 データの中身までは消去してくれないようです。
ですので、rm コマンドでファイルを消しておけば安心、 などと思わないようにしてくださいませ。


では、残ったデータの消去を、これから試みてみたいと思います。

中身が残ったままのデータは、空きブロックとして待機状態にありますので、 空きブロックの中身を、ごっそり消してしまえばよさそうです。

というわけで、実際に試してみましょう。
dd コマンドでファイルを作成して、空きをなくしてしまいます。

  # mount -o loop tameshi.img /mnt/tmp
  # dd if=/dev/urandom of=/mnt/tmp/dummy bs=1k count=4096
  dd: writing `/mnt/tmp/dummy': No space left on device
  ...
  # df /mnt/tmp
  Filesystem         1K-blocks   Used Available Use% Mounted on
  /root/tameshi.img       1003   1003         0 100% /mnt/tmp

空きがなくなりましたので、再度確認してみます。

  # umount /mnt/tmp
  # strings tameshi.img | grep root
  #

…おお、きれいさっぱりなくなったようです。

この方法ですと、消去したいデータだけでなく、 他の過去のデータの中身も消すことができます。
ただ、たとえば空き容量が GB や TB 単位になりますと、 大切なファイルの消去のたびに、膨大な時間がかかってしまいます。(HDD も大変です。)


それでは、ファイルを消す前に、中のデータを上書きして消してしまう、 という方法ではどうでしょうか。試してみましょう。

まずは、shadow ファイルが存在する、最初に近い状態に戻します。
(念のため確認もしています。)

  # mount -o loop tameshi.img /mnt/tmp
  # cp -p /etc/shadow /mnt/tmp
  # umount /mnt/tmp/shadow
  # strings tameshi.img | grep root
  root:秘密です:13257:0:99999:7:::

そして、dd コマンドで上書きします。

  # mount -o loop tameshi.img /mnt/tmp
  # ls -l /mnt/tmp/shadow
  -rw------- 1 root root 1056  5月22日 23:18 /mnt/tmp/shadow
  # dd if=/dev/urandom of=/mnt/tmp/shadow bs=1056 count=1

この時点で、データが残っているかどうか、確認してみましょう。

  # umount /mnt/tmp/shadow
  # strings tameshi.img | grep root
  #

上書きされてしまっていますので、すでにデータは残っていません。
ですので、この後、ファイルを普通に消去しても、安心です。

  # mount -o loop tameshi.img /mnt/tmp
  # rm /mnt/tmp/shadow
  # umount /mnt/tmp/shadow
  # strings tameshi.img | grep root
  #

というわけで、あらかじめ無関係なデータで上書きしておけば、 安心してファイルを消去できるということがわかりました。

…でも、大事なファイルを消去するときに、上記のような作業を毎度行うというのは、 とっても面倒ですよね。

ご安心ください。すでに、そのようなコマンドが存在します。
shred というコマンドは、まさに、上記のようなことを行ってくれます。

  shred -n 上書き回数 -u ファイル

と実行すると、/dev/urandom の内容を、-n オプションで指定した回数、 上書きしてくれます。そして、-u オプションにより、 最後にファイルを消去してくれます。

これはファイルだけでなく、ファイルシステムに対しても行えます。
何かで使用していた HDD に、新たに OS をインストールして、 別の目的で使用する…という場合、前のデータは極力残すべきではないと思いますので、 shred コマンドで消してしまいましょう。

  shred -n 上書き回数 /dev/hda

上記の場合、/dev/hda の中身を、/dev/urandom の内容で上書きします。
(/dev/hda は消去しませんので、-u オプションは不要です。)

もちろん、/dev/hda 上の OS から上記を行いますと、途中で大変なことになります。 ご注意ください。
(たとえば、CD や USB などの Linux を起動して、 /dev/hda が未使用の状態で実行してください。)


以上、ファイルの中身を安心して消去する方法を、ご紹介しました。

ちなみに、/dev/urandom の内容を上書きする回数は、 何回くらいが妥当なのでしょうか。…といいますか、なぜ1回ではないのでしょうか。

別データを上書きしますと、前のデータを参照する手段は、 ソフトウェア的には絶たれます。
ですが、その部分のアナログな値を測定しますと、前のデータが何だったのか、 推測することができてしまう…そうです。

ですので、繰り返し無関係なデータを上書きして、推測を困難にしたほうが、 より安心だということになります。
ただ、何回上書きすれば安心なのか、というのは、 HDD の特性なども考慮する必要がありますので、厳密にはわかりません。
shred のデフォルトの回数が 3回ですので、 3回くらいが妥当なのだろうという気はしております。(曖昧ですみません…。)

宿題の答え

前回の宿題は、

  ログのローテーション実行後、プロセスアカウンティングを勝手に有効
  にしてしまわないよう、細工を施してみましょう。

でした。

いろいろ思うことはありますが、全部説明すると、大変くどくなりましたので、 最小限的な細工の施し方を、ご紹介します。

 

まずは、RedHat 系から。
ありがたいことに、 有効なら /var/lock/subsys/psacct というファイルが存在しますので、 このファイルの有無で判別することができます。
(accton コマンドを直接実行した場合は、ファイルはできません。)

ですので、/etc/logrotate.d/psacct を、以下のように変更します。

  /var/account/pacct {
      compress
      notifempty
      daily
      rotate 31
      create 0600 root root
  postrotate
      if [ -f /var/lock/subsys/psacct ]; then
          /etc/init.d/psacct restart > /dev/null 2>&1
      fi
  endscript
  }     

ローテーション実行後、/var/lock/subsys/psacct がある場合に、 ログの切替えを促すため、プロセスアカウンティングの再起動を行います。
そうでなければなにもしませんので、勝手に有効にはなりません。

 

Debian 系の場合は、まず、 有効であることを判別するためのファイルを作成する必要があります。
そのために、/etc/init.d/acct の中で、/var/run/acct というファイルを、 作成したり削除したりします。
以下の「←この1行を追加」の行を、 /etc/init.d/acct の該当部分に追加してやってください。

  #!/bin/sh
  ...中略...
  case "$1" in
      start)
          if [ "${ACCT_ENABLE}" = "1" ]
          then
  ...中略...
          rv=$?
          if [ $rv -eq 0 ]
          then
              echo "$NAME."
              touch /var/run/acct  # ←この1行を追加
          elif [ $rv -eq 38 ]
  ...中略...
          ;;

      stop)
          echo -n "Stopping $DESC: "
  ...中略...
          if [ $? -eq 0 ]
          then
              echo "$NAME."
              rm -f /var/run/acct  # ←この1行を追加
          else
              echo "failed."
  ...中略...
          ;;

これにより、プロセスアカウンティングが有効のときに、 /var/run/acct が存在するようになります。これをたよりに、 /etc/cron.d/acct の以下の部分を、

  # Restart acct
  /etc/init.d/acct restart > /dev/null

以下のように書き換えます。

  # Restart acct
  [ -f /var/run/acct ] && /etc/init.d/acct restart > /dev/null

これで、有効なときだけ、RedHat と同様の処理が行われます。

 

そもそも、現在プロセスアカウンティングが有効かどうかわからないことが、 元凶のような気がします。
proc_fs などでわかるようにするのは、そんなに難しくないと思うのですが…。 ということで、暇なときにやってみたいと思います。

今回の宿題

今回の宿題は、

  ファイルの中の一部分を消去したとき、前データがどうなるのか、確認
  してみましょう。

です。

たとえば shadow ファイルの中の1行を消去したときに、 消した1行が完全に消え去るのか、あるいはどこかにデータが残ってしまうのか、 気になる貴兄は、同様の方法で確認してみてくださいませ。

あとがき

わたしが、はじめて UNIX なマシンとまじめに遭遇した頃は、 今のように PC が普及していませんでしたので、 レポートを書くのもメールや NetNews を読むのも、何でもかんでもすべて、 UNIX マシン上で行っていました。
(まだブラウザが存在せず、WWW が一般的でなかったころの話です。)

端末(X端末やダム端末的なものなど)を介して、 みんなでよってかかって使っていましたので、 メモリや CPU を酷使するプロセスをうっかり起動しようものなら、 みんなから袋叩きにあったものでした。(遠い目…)

しかし、普段から UNIX 環境下でいろいろ行っていたおかげで、いろいろなことを、 UNIX 上で行えるようになったように思います。
そして、あのころ覚えたことが、システム管理を行う際に立ちはだかる、 さまざまな壁を、低くしてくれているように思います。

ですので、システム管理を究めたいと思われている貴兄は、 普段使用している OS を Linux にして、 何でもかんでも Linux 上で行うようにすればよいのではないか、 と常々思っている次第です。

さて、そんな貴兄に、以下のメルマガをお勧めします。

Linux のデスクトップ環境に関する使用方法などを主体とした、 初心者のかた向けのメルマガです。
Linux の基本的な使い方や、デスクトップ環境の最新の情報などを、 毎週惜しげもなく提供してくださいます。

また、発行者の vine_user さんのサイトである「独学Linux」では、 上記メルマガ以外の情報が、いろいろと得られます。
(最近ですと、噂の EeePC 上で Fedora や Ubuntu を動かしました、 という記事が掲載されています。いいなあ…。)

Linux のデスクトップ環境の進化のすさまじさに、 ついていけなくなりつつあるわたくしとしましては、このようなメルマガやサイトは、 重要な情報源のひとつです。ありがたく活用させていただいています。

というわけで、システム管理に限らず、Linux 使いになりたいなあと思う貴兄は、 上記を熟読して、Linux をいじり倒してみてくださいまし。

 

今回も、ここまで読んでいただき、ありがとうございました。
それでは、次回は 8月3日(日) 頃に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−毎日栗の絵を描いていますが、他にも活動を…乞うご期待!?
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 5 をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューションや、Solaris10の例も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora8)
Fedora8のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日本の Linux 情報
日本の、Linux 総本山的なところです。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
Open Tech Press
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん





▼ 最近読んだ本

ハリー・ポッターと不死鳥の騎士団 ハリー・ポッターと不死鳥の騎士団
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと炎のゴブレット ハリー・ポッターと炎のゴブレット
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターとアズカバンの囚人 ハリー・ポッターとアズカバンの囚人
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと秘密の部屋 ハリー・ポッターと秘密の部屋
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと賢者の石 ハリー・ポッターと賢者の石
J.K.Rowling
  ハリポ月刊なので読み直してます
アルケミスト アルケミスト
パウロ・コエーリョ
  また読んだ
賢者の書 賢者の書
喜多川 泰
  違った視点から見られてよかった
セキュリティウォリア セキュリティウォリア
Cyrus Peikari, Anton Chuvakin
  やや冗長…ためにはなりました
CORE MEMORY CORE MEMORY
John Alderman, Mark Richards
  この筐体でPC作ってほしい!
新訳 星の王子さま 新訳 星の王子さま
サン=テグジュベリ
倉橋 由美子
  つまらない大人になったのか…
.....

[X]
「センネン画報」 今日 マチ子
「粟津潔 デザインする言葉」 粟津潔
「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸
「Make: Volume01」 オライリー・ジャパン
「セーラが町にやってきた」 清野 由実
「手紙屋」 喜多川 泰
「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久
「人蕩し術」 無能 唱元
「子育てハッピーアドバイス2」 明橋 大二, 太田 知子
「ラッセル幸福論」 B. Russell
「それでも人生にイエスと言う」 Viktor Emil Frankl
「子育てハッピーアドバイス」 明橋 大二, 太田 知子
「考具」 加藤 昌治
「北欧デザイン<3>」 渡部 千春
「北斎の謎を解く」 諏訪 春雄
「体感美術館」 平野 暁臣
「チベット永遠の書」 Theodore Illion
「リナックスの革命」 Pekka Himanen
「人月の神話」 Frederick Phillips,Jr. Brooks
「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner
「小布施ッション<2001-2002>」 セーラ・マリ カミングス
「アンパンマン伝説」 やなせ たかし
「夢をかなえるゾウ」 水野 敬也
「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann
「北欧デザイン<2>」 渡部 千春
「北欧デザイン<1>」 渡部 千春
「ヒューマン2.0」 渡辺 千賀
「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯
「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦
「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき
「デザインのデザイン」 原 研哉
「マキアヴェッリ語録」 塩野 七生
「ハンバーガーを待つ3分間の値段」 斎藤 由多加
「星の旅人-スペイン「奥の細道」-」 黛 まどか
「食品の裏側」 安部 司
「On Lisp」 Paul Graham
「ぼくが医者をやめた理由 つづき」 永井 明
「あなたならどうする?」 Jack Nikolaschka
「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」
      Mark G. Graff, Kenneth R. van Wyk
「「左利き」は天才?−利き手をめぐる脳と進化の謎
      David Wolman
「自分の中に毒を持て」 岡本 太郎
「アトピーの薬を減らす本」 田中 貴子
「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留
「X51.ORG THE ODYSSEY」 佐藤 健寿
「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子
「沖縄文化論」 岡本 太郎
「「伝説の社員」になれ!」 土井 英司
「コンピュータの構成と設計(上)」 Patterson & Hennessy
「カラスのジョンソン」 明川 哲也
「ドリルを売るには穴を売れ」 佐藤 義典
「頭がよくなる照明術」 結城 未来
「クロフォードのインタラクティブデザイン論」 Chris Crawford
「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso
「非常識のすすめ―逆発想の仏教論」 ひろさちや
「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」
      デージーネット
「イノベーションの達人!」 Tom Kelly, Jonathan Littman
「クリエーター50人が語る創造の原点」 小原 啓渡
「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick
「楽しい気象観察図鑑」 武田 康男
「入門 Ajax」 高橋 登史朗
「リリカルな自画像」 岡本 太郎
「やぎの目ゴールデンベスト」 林 雄司
「初めてのPython 第2版」 Mark Lutz,David Ascher
「鼻兎」 小林 賢太郎
「なぜ、これがアートなの?」 Amelia Arenas
「芸術起業論」 村上 隆
「まほう色の瞳」 Enrique Barrios
「ラーメンズつくるひとデコ」 ラーメンズ
「R25 つきぬけた男たち」 R25編集部
「美の呪力」 岡本 太郎
「しろのあお」 上大岡 トメ
「ザ・ゴール」 Eliyahu M. Goldratt
「ハッカーと画家」 Paul Graham
「岡本太郎に乾杯」 岡本 敏子
「Fedore Core Expert」 Software Design
「誰も知らない男」 ブルース・バートン
「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト
「国家の罠」 佐藤 優
「夜回り先生」 水谷 修
「やぎの目絵日記」 林 雄司
「7つの習慣」 スティーブン・R. コヴィー
「まろ、ん?−大掴源氏物語」 小泉 吉宏
「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル
「ポストモダン・マーケティング」 スティーブン ブラウン
「機動戦士ガンダムさん」 大和田 秀樹
「小エロのひみつ - Webやぎの目研究発表」 林 雄司
「これ、誰がデザインしたの?」 渡部千春
「60分間・企業ダントツ化プロジェクト」 神田 昌典
「ガルシアへの手紙」 エルバート ハバード
「人生は素晴らしいものだ」 オグ・マンディーノ
「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン
「ワインバーグのシステム思考法」 G.M.ワインバーグ
「渋谷ではたらく社長の告白」 藤田 晋
「渋井真帆の日経新聞読みこなし隊」 渋井 真帆
「コラム息切れ」 小野 法師丸
「早朝起業」 松山 真之介
「変な人が書いた驚くほどツイてる話」 斎藤 一人
「35歳から仕事で大切にしたいこと」 村井 勉
「金融広告を読め」 吉本 佳生
「発想する会社!」 トム・ケリー,ジョナサン・リットマン
「エハイク」 吉田 戦車
「人生の旋律」 神田 昌典
「仕事の思想」 田坂 広志
「CPUの創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

夢をかなえるゾウ 夢をかなえるゾウ
水野 敬也
  いままでで最高の「笑える」成功本
Linuxデバイスドライバ Linuxデバイスドライバ
Alessandro Rubini,
Jonathan Corbet
  ドライバ作らなくてもためになる
Firefoxの改造テクニック! Firefoxの改造テクニック!
大浦 淳
  いま栗日記拡張を考えてます
Apacheモジュール プログラミングガイド Apacheモジュール プログラミングガイド
小山 浩之
  Apacheの中身もわかるよ
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
チベット永遠の書 チベット永遠の書
Theodore Illion
  いろんな意味ですごい!!
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します