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

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


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

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

昨日、大阪の万博公園に行ってきました。

万博公園 - 独立行政法人 日本万博博覧会記念機構
http://park.expo70.or.jp/

わたしは、小学校3年生まで万博公園の近くに住んでいましたので、 たまに家族で万博公園へ行っていました。

久しぶりだなーなんて思いながら訪れたのですが、残念なことに、 当時の記憶を思い出させるようなモノには、巡り合えませんでした。

太陽の塔なんて、当時から何度も目にしていたはずなのですが、 懐かしいなーという気持ちは、不思議と湧いてきません。

それでも、あのインパクト、巨大さは、想像以上でした。
べたな表現ですが、やっぱ岡本太郎ってすごい!! と思いました。

丹下健三の「お祭り広場」の大屋根をどーんとぶち抜いてしまうほどですから、 でかいだろうというのは頭でわかっていたはずなのですが、 やはり実際に目にすると、かなりの衝撃を感じますね。
(ちなみに、大屋根の高さは 30m、太陽の塔の高さは 70m です。)

やっぱり、頭の中でわかっているつもり…では、ダメなんですね。
これからは、できるだけ実際に経験していこう、と思いました。
みなさんも、読むだけでなく、実際に実行してみてくださいね。(^ε^)

おせっかいなところに着地してしまいましたが、気にしないでください。
それでは、今週も、はりきってまいりましょう!

今週のお題 - 設定ファイルをリビジョン管理する

いまや、 どのディストリビューションにもさまざまなアプリケーションが搭載されており、 どれになにが入っているのか把握しきれなくなってきているように思います。

とはいえ、現在においては、グーグルなどで検索することで、 設定方法を知ることができますので、ドキュメントを読破しなくても、 そして完全に理解をしなくても、それなりに動作させることができます。

そんなわけで、必要な設定を行い、ユーザのみなさまに使っていただき、 フィードバックを得て設定を変更する、というスパイラルが、 各所で日々行われているのだと推測します。

さて、ここで、ふと、管理上の問題に気づきました。
日々刻々と変更される設定ファイルを、どのように管理していけばよいのでしょうか。 たとえば、とあるアプリケーションの設定をあの日の状態に戻してくれ、 なんて言われたら、すんなりと戻せますでしょうか?

というわけで、今週は、RCS を使って、 設定ファイルのリビジョン管理を行ってみようと思います。


今週は、RCS の使い方を、簡単にご紹介します。
もしパッケージが入っていなければ、apt とか yum とかで、 インストールしてください。DVD-ROM や CD-ROM から召喚してもよいと思います。

RCS によるリビジョン管理のおおまかな流れは、以下の通りです。

  1. アーカイブを作成する。
  2. チェックアウトして、ファイルを編集する。
  3. チェックインして、新たなリビジョンを格納する。
  4. 過去に戻るときは、リビジョン番号を指定してチェックアウトする。

今回は、/etc/hosts をいじくりながら、ご紹介したいと思います。

  1. なにはともあれ、まずは、アーカイブを作成しましょう。
    アーカイブの作成には、ci コマンドを使用します。
      # cd /etc
      # ci hosts
      hosts,v  <--  hosts
      enter description, terminated with single '.' or end of file:
      NOTE: This is NOT the log message!
      >> static hostname table.    <===== 自分で入力(ファイルの説明)
      >> .                         <===== 自分で入力(. でおわり)
      initial revision: 1.1
      done
    

    ci コマンドを実行すると、hosts,v という名前のアーカイブが作成されます。 ファイルの説明をインタラクティブに聞かれますので、そつなく答えます。 すると、リビジョン 1.1 で登録されました。

    ちなみに、RCS というディレクトリがあるなら、アーカイブはその下に作成されます。 /etc に *,v というファイルがたくさんできて困るよ〜気になるよ〜という貴兄は、 あらかじめ作っておきましょう。

    これでアーカイブができましたが、hosts ファイルがなくなってしまいますので、 co コマンドで、取り出しておきます。

      # co hosts
      hosts,v  -->  hosts
      revision 1.1
      done
      # ls -l hosts hosts,v
      -r--r--r--    1 root     root         3556 Jun 12 00:19 hosts
      -r--r--r--    1 root     root         3756 Jun 12 00:19 hosts,v
    

    書き込みできなくなっている点に、ご注意ください。

  2. 編集したくなったときには、ロックをかけてチェックアウトします。
    ロックをかけることで、編集中であることがわかります。 また、ほかのひとが編集できなくなりますので、安心して編集できます。
    チェックアウトには、co コマンドを使用します。
      # co -l hosts
      hosts,v  -->  hosts
      revision 1.1 (locked)
      done
      # ls -l hosts
      -rw-r--r--    1 root     root         3556 Jun 12 00:28 hosts
    

    今度は、書き込めるようになっています。
    お好きなエディタを使用して、編集しましょう。

  3. 編集し終えたモノを正式に登録したいときは、チェックインします。
    チェックインには、ci コマンドを使用します。
      # ci hosts
      hosts,v  <--  hosts
      new revision: 1.2; previous revision: 1.1
      enter log message, terminated with single '.' or end of file:
      >> add new machine.    <===== 自分で入力(変更点などメモ)
      >> .                   <===== 自分で入力(. でおわり)
      done
    

    変更内容などをログに残せますので、やはりそつなく答えておきます。
    リビジョン 1.2 でアーカイブに格納できました。
    アーカイブ生成時と同様、hosts ファイルがなくなりますので、 ロックせずにチェックアウトします。

      # co hosts
      hosts,v  -->  hosts
      revision 1.2
      done
    

    先ほど登録した、最新のリビジョン 1.2 が召喚されます。

  4. 最新ではなく、過去の状態に戻したいときは、 リビジョン番号を指定してチェックアウトします。
    具体的には、co コマンドに、-r オプションをつけて実行します。
    たとえば、リビジョン 1.1 に戻したければ、以下のように実行します。
      # co -r1.1 hosts
      hosts,v  -->  hosts
      revision 1.1
      done
    

以上、ものすごく大雑把ですが、RCS の使い方をご紹介しました。

簡単には、上記の流れで、リビジョン管理できる…と思います。
ただし、ファイルのアクセス権には、少し注意する必要があります。
ロックをかけずにチェックアウトすると、だれも書き込めない状態になりますし、 ロックをかけると所有者のみ書き込み可の状態になります。

アクセス権に厳しいアプリケーションの場合は、 手動でアクセス権を設定するなどして、しのぐ必要があることを、 覚えておいてください。
(この続きは宿題で…)

宿題の答え

先週の宿題は、

  tcpdump を使って、POP3 のパケットを眺めてみましょう。

でした。

こんな宿題を出して、今、激しく後悔しておりますが、 できるところまでやってみたいと思います。

tcpdump -x -s 0 port 110 で得た結果を、超抜粋してご紹介します。
まず、最初の3パケットは、TCP のハンドシェークなので割愛します。
その直後の、POP3 サーバからの返事が以下です。

  01:09:09.989696 IP localhost.localdomain.pop3 > \
  localhost.localdomain.42378: P 1:75(74) ack 1 win 32767 \
  <nop,nop,timestamp 174541460 174541434>
    0x0000:  4500 007e 2547 4000 4006 1731 7f00 0001  E..~%G@.@..1....
    0x0010:  7f00 0001 006e a58a 0baa 6f3d 0b05 b503  .....n....o=....
    0x0020:  8018 7fff c69d 0000 0101 080a 0a67 4a94  .............gJ.
    0x0030:  0a67 4a7a 2b4f 4b20 5170 6f70 7065 7220  .gJz+OK.Qpopper.
    0x0040:  2876 6572 7369 6f6e 2034 2e30 2e39 2920  (version.4.0.9).
    0x0050:  6174 2074 616d 616f 2073 7461 7274 696e  at.tamao.startin
    0x0060:  672e 2020 3c31 3838 3935 2e31 3135 3030  g...<18895.11500
    0x0070:  3432 3134 3940 7461 6d61 6f3e 0d0a       42149@tamao>..

見にくくてすみません。
最初の20オクテットが、IPヘッダです。
RFC791 を参考にして、さらっと見てみましょう。

  4500 : 4=Version(IPv4), 5=IHL(32bitx5=20octet), 00=ToS
  007e : Total Length
  2547 : Identification
  4000 : 4=Flags(Don't fragment), 000=Fragment offset
  4006 : 40=TTL, 06=Protocol(TCP)
  1731 : Checksum
  7f00 0001 : Source Address (127.0.0.1)
  7f00 0001 : Destination Address (127.0.0.1)

IP のバージョンや、次ヘッダ(TCP)、IPアドレスなどがわかります。
次の32オクテットが、TCP ヘッダです。(以下の Offset でわかります)
RFC793 や RFC1323 を参考にして、さらさらっと見てみましょう。

  006e : Source Port(110)
  a58a : Destination Port(42378)
  0baa 6f3d : Sequence Number
  0b05 b503 : Acknowledgment Number
  8018 : 8=Offset(32bitx8=32octet), 18=Flags(ACK,PSH)
  7fff : Window
  c69d : Checksum
  0000 : Urgent Pointer
  0101 : Option:No-operation
  080a 〜 4a7a : Option:Timestamps

ポート番号、シーケンス番号、ACK番号、ウィンドウサイズなどがわかります。 (TCP ヘッダのオプションは、RFC1323 に書いてあります。)
そして、残りがデータです。+OK Qpopper 云々とおっしゃいます。

これに対して、以下の ACK を返します。

  01:09:09.989734 IP localhost.localdomain.42378 > \
  localhost.localdomain.pop3: . ack 75 win 32767 \
  <nop,nop,timestamp 174541460 174541460>
    0x0000:  4510 0034 ff7a 4000 4006 3d37 7f00 0001  E..4.z@.@.=7....
    0x0010:  7f00 0001 a58a 006e 0b05 b503 0baa 6f87  .......n......o.
    0x0020:  8010 7fff 6d92 0000 0101 080a 0a67 4a94  ....m........gJ.
    0x0030:  0a67 4a94                                .gJ.

IPヘッダは割愛します。TCPヘッダは以下の通りです。

  a58a : Source Port(42378)
  006e : Destination Port(110)
  0b05 b503 : Sequence Number
  0baa 6f87 : Acknowledge Number
  8010 : 8=Offset(32bitx8=32octet), 10=Flags(ACK)
  7fff : Window
  6d92 : Checksum
  0000 : Urgent Pointer
  0101 : Option:No-operation
  080a 〜 4a94 : Option:Timestamps

受けとりましたよという返事なので、データはありません。

その後、"USER ユーザ名" "+OK 云々" "PASS パスワード" "+OK 云々"... というやりとりが続きますが、これはアレですので、割愛します。

あ、そうそう、RFC は、たとえば以下から参照してください。

IETF RFC Page
http://www.ietf.org/rfc.html

今週の宿題

今週の宿題は、

  RCS で、もとのアクセス権を保存する方法を、考えてみましょう。

です。

たとえば、万人が読み書きできないといけないファイルを、 RCS を使って管理しようとします。

  % ls -l file 
  -rw-rw-rw-    1 usu      adm             5 Jun 12 01:00 file
  % ci file 
  % co file
  % ls -l file
  -r--r--r--    1 usu      adm             5 Jun 12 01:01 file

上記のように、チェックアウトすると、書き込み権が失われます。
だめなんだーとあきらめずに、 もとのアクセス権を保存するような方法を考えてみましょう。 (…次週までになにか考えます。)

あとがき

前回のネタについて、読者の方から、ご指摘いただきました。

> 試していいマシン上で以下を設定して、別のマシンから ping します。
> 
>   # iptables -A INPUT -p icmp -j DROP
> 
> …再現したでしょうか。
> 試したら、以下を実行して、もとに戻しましょう。
> 
>   # iptables -F

なんて気軽に書きましたが、上記のように iptables -F と実行しますと、 他の設定もまるっと消えてしまいます。
ですので、以下のように、追加した設定だけ消した方がよいと思います。

  # iptables -D INPUT -p icmp -j DROP

ご指摘いただいた○○さん、どうもありがとうございました。

もし、iptables -F を実行して、 のっぴきならない状況に陥ってしまった方がいらっしゃいましたら、 この場を借りて、陳謝いたします。m(_o_)m

…というわけで、最近、ちらほらと、感想などをいただいております。
ありがたい限りです。いやー、○△□☆【▲♀〜…

…あーもうだめです、今日は気力体力の限界に達しました。
土日に大阪の実家に帰ったのですが、ちょっとハードスケジュールだったため、 モウロウとしています。

すみません、しりきれとんぼ的ですが、ここでおわりにします。

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週に、お会いしましょう!

「いますぐ実践! 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/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [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・チャルディーニ
  思わず納得します