◆ NetInfo の操作の実際

ここでは, 設定のサンプルで目標とした NetInfo の設定のための手順を書いていきます.
  1. 新しい NetInfo データベースを作成します.
    # nidomain -m numath-mac
    
    これで, タグ名 "numath-mac" を持つ NetInfo データベースが作成されました.
    この時点で, "nidomain -l" を実行すると,
    # nidomain -l
    tag=numath-mac udp=xxx tcp=yyy
    tag=local udp=zzz tcp=www
    
    という出力が得られます. それぞれに示されているのが netinfod が LISTEN しているポート番号です.
  2. 現在の NetInfo の property を見てみます.
    1. local データベースの property を見てみます.
      # niutil -read . /
      master: localhost/local
      trusted_networks:
        
    2. "numath-mac" データベースの property を見てみます.
      # niutil -t -read localhost/numath-mac /
      master: OSX/numath-mac
      # niutil -t -list localhost/numath-mac /
      1       machines
      # niutil -t -list localhost/numath-mac /machines
      2       OSX
      # niutil -t -read localhost/numath-mac /machines/OSX
      name: OSX
      ip_address: 133.6.130.27
      servers: ./numath-mac
        
  3. "numath-mac" データベースを local データベースの上位に配置する.
    そのためには次のように設定します. これによって, local データベースと "numath-mac" データベースとの関連が構成されます.
    そのためには, 以下のように設定します.
  4. ここまでに行った設定を有効にする
    # kill -HUP `/bin/cat /var/run/nibindd.pid`
    
    これを行うと, /var/log/system.log に以下の情報が得られる.
    Nov 11 21:16:03 OSX nibindd[178]: Shutting down NetInfo servers
    Nov 11 21:16:03 OSX nibindd[178]: Restarting NetInfo
    Nov 11 21:16:03 OSX netinfod numath-mac[341]: exiting; checksum 9
    Nov 11 21:16:03 OSX netinfod local[179]: exiting; checksum 75041
    Nov 11 21:16:03 OSX netinfod local[414]: world bind try 1: 133.6.130.255/numath-mac
    Nov 11 21:16:05 OSX netinfod local[414]: bound to 133.6.130.27/numath-mac
    
    5行めで, broadcast 宛に "numath-mac" という domain を探していることがわかる. 6行めで, それに対する返答として, "133.6.130.27" すなわち, localhost で domain server が見つかったことを示している.
    ところが, これでは設定が有効になりませんでした. これって, MacOS X の NetInfo の BUG なのでしょうか? 結局, 再起動するとこの設定が有効になりました.

◆ NetInfo データベースを見る

データベースの中身を見るには,
# nidump passwd . /
# nidump passwd .. /
とすればOKです.
この時点でのデータベースの中身は
  1. "local" データベース となっています. ここで, passwd の "XXXX" はインストール時に設定したユーザ名で, group の wheel, admin に "XXXX" が入っていることに注意してください.
  2. "numath-mac"
    こちらには, nidump で見ることが出来る情報は, この時点では何も入っていません.

◆ データベースにデータを追加する

データを追加するには,
# niload [-m|-d] passwd . < /tmp/passwd 
などとやればOKです.
-d: エントリの override.
-m: エントリの marge
というオプションをとります.
ただし, データの削除のためには, niutil コマンドを利用します. たとえば, パスワードエントリから "naito" を削除するには,
# niutil -destroy . /users/naito
とします.

◆ passwd データベース

UNIX flat 形式の passwd ファイルを利用します.
naito:*:1000:100::0:0:Hisashi Naito:/home/staff/naito/.MacOSX_Home:/bin/tcsh
という形式からなりますが, Solaris 2 などのものとは, GID のあとに3つエントリが増えていることに注意してください. (BSD で標準的に利用される形式だったはずです.)
このようなデータからなるファイルを用意し,
# niload -t passwd localhost/numath-mac < passwd
として, データベースに登録します.

◆ group データベース

UNIX flat 形式の group ファイルを利用します.
wheel:*:0:naito
math:*:100:
ここで, wheel group に登録したユーザは root ユーザに su する権利が生じます.

◆ resolv.conf データベース

nidump は resolv.conf を出力できるのですが, niload は resolv.conf を入力できません. ( 本当?
そこで, niutil を利用します.
# niutil -t -create     localhost/numath-mac /locations/resolver
# niutil -t -createprop localhost/numath-mac /locations/resolver nameserver 133.6.130.5 133.6.130.1 133.6.86.1
# niutil -t -createprop localhost/numath-mac /locations/resolver domain math.nagoya-u.ac.jp
# nidump resolv.conf -t localhost/numath-mac
domain math.nagoya-u.ac.jp
nameserver 133.6.130.5
nameserver 133.6.130.1
nameserver 133.6.86.1
さらに, resolver の検索順序を指定します.
# niutil -t -create     localhost/numath-mac /locations/lookupd/hosts
# niutil -t -createprop localhost/numath-mac /locations/lookupd/hosts LookupOrder FFAgent NIAgent DNSAgent

ここで, Agent の指定順序の通りに検索を行いますが, その指定方法は となります.

◆ fstab データベース

以下のような fstab を用意してみます.
rabbit:/home  /home nfs rw,hard,intr,bg 0 0
これで, mount point である /home をあらかじめ作成しておくと, 起動時に NFS マウントが実行されます.

◆ その他のデータベース

その他 hosts, printcap, aliases などのデータベースを必要に応じて設定します.
また, その他のネットワーク情報のうち, NetInfo で設定できるものがいくつかあります. これらは必要に応じて書き換えます.
naito@math.nagoya-u.ac.jp
$Id: netinfo_2.html,v 1.5 2001-05-21 16:39:49+09 naito Exp $