ここでは,
設定のサンプルで目標とした NetInfo の設定のための手順を書いていきます.
-
新しい 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 しているポート番号です.
-
現在の NetInfo の property を見てみます.
-
local データベースの property を見てみます.
# niutil -read . /
master: localhost/local
trusted_networks:
-
"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
- "numath-mac" データベースを local データベースの上位に配置する.
そのためには次のように設定します.
- "numath-mac" に以下の property を与える.
データベースエントリ | property | value |
/ | master | OSX/numath-mac |
/machines/OSX | serves | ./numath-mac OSX/local |
- "local" に以下の property を与える.
データベースエントリ | property | value |
/machines/localhost | serves | ./local |
/machines/broadcasthost | serves | ../numath-mac |
/ | master | broadcasthost/numath-mac |
これによって, local データベースと "numath-mac" データベースとの関連が構成されます.
そのためには, 以下のように設定します.
- "numath-mac" の property の設定.
# niutil -t -createprop localhost/numath-mac / master OSX/numath-mac
# niutil -t -read localhost/numath-mac / master
master: OSX/numath-mac
# niutil -t -createprop localhost/numath-mac /machines/OSX serves ./numath-mac OSX/local
# niutil -t -read localhost/numath-mac /machines/OSX
name: OSX
ip_address: 133.6.130.27
serves: ./numath-mac OSX/local
- "local" の property の設定.
# niutil -t -createprop localhost/local /machines/localhost serves ./local
# niutil -t -read localhost/local /machines/localhost
name: localhost
ip_address: 127.0.0.1
serves: ./local
# niutil -t -createprop localhost/local /machines/broadcasthost serves ../numath-mac
# niutil -t -read localhost/local /machines/broadcasthost
name: broadcasthost
ip_address: 255.255.255.255
serves: ../numath-mac
# niutil -t -read localhost/local /
master: localhost/local
trusted_networks:
# niutil -t -createprop localhost/local / master broadcasthost/numath-mac
# niutil -t -read localhost/local /
trusted_networks:
master: broadcasthost/numath-mac
- ここまでに行った設定を有効にする
# 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 なのでしょうか?
結局, 再起動するとこの設定が有効になりました.
データベースの中身を見るには,
# nidump passwd . /
# nidump passwd .. /
とすればOKです.
この時点でのデータベースの中身は
- "local" データベース
- passwd
root:0:0:
daemon:1:1:
www:70:70:
unknown:-3:-3:
nobody:-2:-2:
XXXX:102:20:
- group
unknown:*:-3:
nobody:*:-2:
nogroup:*:-1:
wheel:*:0:XXXX
daemon:*:1:root
kmem:*:2:root
sys:*:3:root
tty:*:4:root
operator:*:5:root
mail:*:6:
bin:*:7:
news:*:8:
man:*:9:
games:*:13:
staff:*:20:root
guest:*:31:root
utmp:*:45:
uucp:*:66:
dialer:*:68:
network:*:69:
www:*:70:
admin:*:80:XXXX
- aliases
administrator: root
postmaster: root
MAILER-DAEMON: postmaster
MAILER-AGENT: postmaster
nobody: root
dumper: root
manager: root
operator: root
- hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
255.255.255.255 -DHCP-
となっています.
ここで, passwd の "XXXX" はインストール時に設定したユーザ名で,
group の wheel, admin に "XXXX" が入っていることに注意してください.
- "numath-mac"
こちらには, nidump で見ることが出来る情報は, この時点では何も入っていません.
データを追加するには,
# niload [-m|-d] passwd . < /tmp/passwd
などとやればOKです.
-d: エントリの override.
-m: エントリの marge
というオプションをとります.
ただし, データの削除のためには,
niutil コマンドを利用します.
たとえば, パスワードエントリから "naito" を削除するには,
# niutil -destroy . /users/naito
とします.
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
として, データベースに登録します.
UNIX flat 形式の group ファイルを利用します.
wheel:*:0:naito
math:*:100:
ここで, wheel group に登録したユーザは root ユーザに su する権利が生じます.
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 の指定順序の通りに検索を行いますが, その指定方法は
- CacheAgent --- lookupd の内部キャッシュ
- FFAgent --- /etc/hosts
- NIAgent --- NetInfo
- DNSAgent --- DNS
- NISAgent --- NIS
となります.
以下のような fstab を用意してみます.
rabbit:/home /home nfs rw,hard,intr,bg 0 0
これで, mount point である /home
をあらかじめ作成しておくと,
起動時に NFS マウントが実行されます.
その他 hosts, printcap, aliases などのデータベースを必要に応じて設定します.
また, その他のネットワーク情報のうち, NetInfo で設定できるものがいくつかあります.
- AppleTalk Node Name:
localhost/local の /localconfig/appletalk/atalkname にあります.
- NTP Server:
localhost/local の /config/ntp の server にあります.
これらは必要に応じて書き換えます.
naito@math.nagoya-u.ac.jp
$Id: netinfo_2.html,v 1.5 2001-05-21 16:39:49+09 naito Exp $