
|
[バックナンバーのトップへ] [Linux システム管理のトップへ] いますぐ実践! Linux システム管理 / Vol.141 / 読者数:1286名こんばんは、うすだです。
小学校は、一昨日に終業式を迎え、早くも夏休みに突入しております。
それはもう、にぎやかで、愉快です。 唯一の失敗は、次回は7月20日に発行しますと、前回、 無邪気かつ能天気に書いてしまったことでしょうか…。 そんなにぎやかな環境下から、今回も、はりきってお送りしましょう! 今回のお題 - データをしっかり消去するサーバはみんなのものですので、いろんなひとが、さまざまな用途で使用し、 多種多様なファイルを置いたり消したりしていると思います。 ときには、個人的なファイルや、どこかのシステムの重要なファイルを、 一瞬だけ置いて、使用後すぐに消去したりといったことも、 行われることがあるのではないかと推測します。 しかし、ファイルを消した後、ほんとうにきれいさっぱり消去されているのか、 という素朴な疑問が、ふつふつと湧いてきたりもします。 システム管理者たるもの、そのあたりを曖昧にせず、はっきりさせた上で、 日々の業務に翻弄されるべきではないでしょうか。 というわけで、今回は、ファイルを消去した後、中身も完全に消え去っているのか、 もしくは残っているならどうすればよいのか、といったあたりを、 実際に確認などしてみたいと思います。 タイトルからして、結論がわかっているような感じですが、ここは知らぬふりをして、 押し通していきたいと思います。 まずは、小さなファイルシステムを作成し、その上で、 ファイルを消したときにまるっと消え去るのかどうか、確認してみたいと思います。
以下のように、1MB のファイル tameshi.img を、
dd コマンドを使用して作成してみましょう。 # 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 ファイルシステムに仕立てあげて、マウントします。 # 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::: …あ、ばっちり残っていますね。
ファイルを消去しても、たどれなくなるだけで、
データの中身までは消去してくれないようです。 では、残ったデータの消去を、これから試みてみたいと思います。 中身が残ったままのデータは、空きブロックとして待機状態にありますので、 空きブロックの中身を、ごっそり消してしまえばよさそうです。
というわけで、実際に試してみましょう。 # 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 # …おお、きれいさっぱりなくなったようです。
この方法ですと、消去したいデータだけでなく、
他の過去のデータの中身も消すことができます。 それでは、ファイルを消す前に、中のデータを上書きして消してしまう、 という方法ではどうでしょうか。試してみましょう。
まずは、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 -n 上書き回数 -u ファイル と実行すると、/dev/urandom の内容を、-n オプションで指定した回数、 上書きしてくれます。そして、-u オプションにより、 最後にファイルを消去してくれます。
これはファイルだけでなく、ファイルシステムに対しても行えます。 shred -n 上書き回数 /dev/hda
上記の場合、/dev/hda の中身を、/dev/urandom の内容で上書きします。
もちろん、/dev/hda 上の OS から上記を行いますと、途中で大変なことになります。
ご注意ください。 以上、ファイルの中身を安心して消去する方法を、ご紹介しました。 ちなみに、/dev/urandom の内容を上書きする回数は、 何回くらいが妥当なのでしょうか。…といいますか、なぜ1回ではないのでしょうか。
別データを上書きしますと、前のデータを参照する手段は、
ソフトウェア的には絶たれます。
ですので、繰り返し無関係なデータを上書きして、推測を困難にしたほうが、
より安心だということになります。 宿題の答え前回の宿題は、 ログのローテーション実行後、プロセスアカウンティングを勝手に有効 にしてしまわないよう、細工を施してみましょう。 でした。 いろいろ思うことはありますが、全部説明すると、大変くどくなりましたので、 最小限的な細工の施し方を、ご紹介します。
まずは、RedHat 系から。 ですので、/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 系の場合は、まず、
有効であることを判別するためのファイルを作成する必要があります。
#!/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 と同様の処理が行われます。
そもそも、現在プロセスアカウンティングが有効かどうかわからないことが、
元凶のような気がします。 今回の宿題今回の宿題は、 ファイルの中の一部分を消去したとき、前データがどうなるのか、確認 してみましょう。 です。 たとえば shadow ファイルの中の1行を消去したときに、 消した1行が完全に消え去るのか、あるいはどこかにデータが残ってしまうのか、 気になる貴兄は、同様の方法で確認してみてくださいませ。 あとがき
わたしが、はじめて UNIX なマシンとまじめに遭遇した頃は、
今のように PC が普及していませんでしたので、
レポートを書くのもメールや NetNews を読むのも、何でもかんでもすべて、
UNIX マシン上で行っていました。 端末(X端末やダム端末的なものなど)を介して、 みんなでよってかかって使っていましたので、 メモリや CPU を酷使するプロセスをうっかり起動しようものなら、 みんなから袋叩きにあったものでした。(遠い目…)
しかし、普段から UNIX 環境下でいろいろ行っていたおかげで、いろいろなことを、
UNIX 上で行えるようになったように思います。 ですので、システム管理を究めたいと思われている貴兄は、 普段使用している OS を Linux にして、 何でもかんでも Linux 上で行うようにすればよいのではないか、 と常々思っている次第です。 さて、そんな貴兄に、以下のメルマガをお勧めします。
Linux のデスクトップ環境に関する使用方法などを主体とした、
初心者のかた向けのメルマガです。
また、発行者の vine_user さんのサイトである「独学Linux」では、
上記メルマガ以外の情報が、いろいろと得られます。 Linux のデスクトップ環境の進化のすさまじさに、 ついていけなくなりつつあるわたくしとしましては、このようなメルマガやサイトは、 重要な情報源のひとつです。ありがたく活用させていただいています。 というわけで、システム管理に限らず、Linux 使いになりたいなあと思う貴兄は、 上記を熟読して、Linux をいじり倒してみてくださいまし。
今回も、ここまで読んでいただき、ありがとうございました。
「いますぐ実践! Linux システム管理」の解除は、以下からできます。
バックナンバーは、こちらにほぼ全部そろっています。
「栗日記」−毎日栗の絵を描いていますが、他にも活動を…乞うご期待!? |
▼ トップ ▼ プロフィール ▼ リンク
▼ 作ってみました
▼ せんでん
▼ 最近読んだ本 [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の創りかた」 渡波 郁 「非常識な成功法則」 神田 昌典 …これ以前は記録してません…
▼ 気に入ってる本
| ||||||||||||||||||||||||||||||||||||||||