自動起動について named (bind) の 自動起動を行うためにまず設定の部分を見る。 起動関連は /etc/rc.d の所に plamo linux は 存在するようであるから 移動して 探してみる。
nyan:~# cd /etc/rc.d/
nyan:/etc/rc.d# cat rc.S | grep named
nyan:/etc/rc.d# cat rc.inet1 | grep named
nyan:/etc/rc.d# cat rc.inet2 | grep named
# if [ -f ${NET}/named ]; then
# echo -n " named"
# ${NET}/named
これらから rc.inet2 で 何か処理されているようだ
nyan:/etc/rc.d# cat -n rc.inet2 | grep named
54 # if [ -f ${NET}/named ]; then
55 # echo -n " named"
56 # ${NET}/named
nyan:/etc/rc.d# wc -l rc.inet2
131 rc.inet2
nyan:/etc/rc.d# bc
bc 1.04
Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
131-54
77
nyan:/etc/rc.d# tail -78 rc.inet2 | head -5
# if [ -f ${NET}/named ]; then
# echo -n " named"
# ${NET}/named
# fi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/etc/rc.d# tail -80 rc.inet2 | head -7
# # Start the NAMED/BIND name server.
# if [ -f ${NET}/named ]; then
# echo -n " named"
# ${NET}/named
# fi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/etc/rc.d# cat -n rc.inet2 | grep NET=
13 NET="/usr/sbin"
~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/etc/rc.d# tail -121 rc.inet2 | head -5
# Constants.
NET="/usr/sbin"
IN_SERV="lpd"
LPSPOOL="/var/spool/lpd"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
これらから /usr/sbin に named が あるかもしれない、調査
nyan:/etc/rc.d# ls -l /usr/sbin/ | grep named
なんの返事も無いということは無いのであろう。
nyan:/etc/rc.d# find / -name named
/var/run/named
/var/named
/usr/local/sbin/named
/usr/local/src/bind-9.2.3/bin/named
/usr/local/src/bind-9.2.3/bin/named/include/named
/usr/local/src/bind-9.2.3/bin/named/unix/include/named
/usr/local/src/bind-9.2.3/bin/named/win32/include/named
/usr/local/src/bind-9.2.3/bin/named/named
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
これらから named は /usr/local/sbin/named に 存在するが/usr/sbin/には無い したがって /usr/sbin/ に named を 作ってやれば良い ln -s で リンクを作成しよう
mm@nyan:~/a_inst$ man ln
(抜粋)
名前
ln - ファイルへのリンクを作成する
書式
ln [オプション] source [dest]
ln [オプション] source... directory
POSIX オプション: [-f]
GNU オプション (簡略形式): [-bdfinsvF] [-S backup-suffix]
[-V {numbered,existing,simple}] [--help] [--version] [--]
-s, --symbolic
ハ ー ド リンクの代わりにシンボリックリンクを作成す
る。シンボリックリンクをサポートしないシス テ ム で
は、 このオプションを指定すると単にエラーメッセージ
を出力する。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
てなわけであるので、
nyan:/etc/rc.d# ls -l /usr/local/ | grep named
nyan:/etc/rc.d# ln -s /usr/local/sbin/named /usr/sbin/named
nyan:/etc/rc.d# ls -l /usr/sbin/ | grep named
lrwxrwxrwx 1 root root 21 Sep 2 07:59 named -> /usr/local/sbin/named*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
次は rc.inte2 を 変更 しよう、変更した後で
nyan:/etc/rc.d# cd /etc/rc.d/
nyan:/etc/rc.d# mv rc.inet2 001_rc.inet2_org
nyan:/etc/rc.d# diff -s rc.inet2 001_rc.inet2_org
53,58c53,58
< # # Start the NAMED/BIND name server.2004年 9月 2日 (木) 08:08:57 JST
< if [ -f ${NET}/named ]; then
< echo -n " named"
< ${NET}/named
< fi
< # 本行含めて 上部 6行 変更 # マーク削除 named 自動起動
---
> # # Start the NAMED/BIND name server.
> # if [ -f ${NET}/named ]; then
> # echo -n " named"
> # ${NET}/named
> # fi
>
変更内容は 上記のようにした。 再起動で named (bind) の 起動を 確認する。
nyan:/etc/rc.d# shutdown -r now
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:~# cat -n /var/log/messages | grep named
26 Sep 2 08:18:04 nyan named[60]: starting BIND 9.2.3
28 Sep 2 08:18:04 nyan named[60]: using 1 CPU
39 Sep 2 08:18:05 nyan named[60]: loading configuration \
from '/etc/named.conf'
41 Sep 2 08:18:05 nyan named[60]: no IPv6 interfaces found
43 Sep 2 08:18:05 nyan named[60]: listening on IPv4 \
interface lo, 127.0.0.1#53
45 Sep 2 08:18:05 nyan named[60]: listening on \
IPv4 interface eth0, 192.168.0.5#53
52 Sep 2 08:18:05 nyan named[60]: command channel \
listening on 127.0.0.1#953
56 Sep 2 08:18:06 nyan named[60]: \
zone 0.0.127.in-addr.arpa/IN: loaded serial 20030121
58 Sep 2 08:18:06 nyan named[60]: \
zone 0.168.192.in-addr.arpa/IN: loaded serial 20030121
66 Sep 2 08:18:06 nyan named[60]: \
zone bcnet.ne.jp/IN: loaded serial 20030121
68 Sep 2 08:18:06 nyan named[60]: \
zone localhost/IN: loaded serial 20030121
70 Sep 2 08:18:06 nyan named[60]: running
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:~# cat /var/log/messages | grep named
Sep 2 08:18:04 nyan named[60]: starting BIND 9.2.3
Sep 2 08:18:04 nyan named[60]: using 1 CPU
Sep 2 08:18:05 nyan named[60]: loading configuration from '/etc/named.conf'
Sep 2 08:18:05 nyan named[60]: no IPv6 interfaces found
Sep 2 08:18:05 nyan named[60]: listening on IPv4 interface lo, 127.0.0.1#53
Sep 2 08:18:05 nyan named[60]: listening on \
IPv4 interface eth0, 192.168.0.5#53
Sep 2 08:18:05 nyan named[60]: command channel listening on 127.0.0.1#953
Sep 2 08:18:06 nyan named[60]: zone 0.0.127.in-addr.arpa/IN: \
loaded serial 20030121
Sep 2 08:18:06 nyan named[60]: zone 0.168.192.in-addr.arpa/IN: \
loaded serial 20030121
Sep 2 08:18:06 nyan named[60]: zone bcnet.ne.jp/IN: loaded serial 20030121
Sep 2 08:18:06 nyan named[60]: zone localhost/IN: loaded serial 20030121
Sep 2 08:18:06 nyan named[60]: running
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
無事起動しているようだ
nyan:~# ps ax | grep named
60 ? S 0:00 /usr/sbin/named
277 pts/0 S 0:00 grep named
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:~# cd /var/
nyan:/var# chown -R named.named named/
せっかくだから オーナーと グループを 変更した
nyan:/var/named# cd /var/run/
nyan:/var/run# chown -R named.named named/
せっかくだから オーナーと グループを 変更 (トラブルの開始)再度起動確認
nyan:/var/run# shutdown -r now
nyan:~# cat /var/log/messages | grep named
Sep 2 08:30:15 nyan named[60]: starting BIND 9.2.3
Sep 2 08:30:15 nyan named[60]: using 1 CPU
Sep 2 08:30:16 nyan named[60]: loading configuration from '/etc/named.conf'
Sep 2 08:30:16 nyan named[60]: no IPv6 interfaces found
Sep 2 08:30:16 nyan named[60]: listening on IPv4 interface lo, 127.0.0.1#53
Sep 2 08:30:16 nyan named[60]: listening on \
IPv4 interface eth0, 192.168.0.5#53
Sep 2 08:30:16 nyan named[60]: command channel listening on 127.0.0.1#953
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
何か変??
nyan:~# cat /var/log/syslog
Sep 2 08:30:17 nyan named[60]: couldn't open pid file \
'/var/run/named/named.pid': File exists
Sep 2 08:30:17 nyan named[60]: exiting (due to early fatal error)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ファイルがある?!開けない、なぜだ?? どうも pid file を named にしたのが 祟ってるようだ元の root に戻そう
nyan:~# cd /var/run/
nyan:/var/run# chown root -R named/
再度起動確認
nyan:/var/run# shutdown -r now
nyan:~# cat /var/log/messages | grep named
Sep 2 08:42:43 nyan named[60]: starting BIND 9.2.3
Sep 2 08:42:43 nyan named[60]: using 1 CPU
Sep 2 08:42:44 nyan named[60]: loading configuration from '/etc/named.conf'
Sep 2 08:42:44 nyan named[60]: no IPv6 interfaces found
Sep 2 08:42:44 nyan named[60]: listening on IPv4 interface lo, 127.0.0.1#53
Sep 2 08:42:44 nyan named[60]: listening on \
IPv4 interface eth0, 192.168.0.5#53
Sep 2 08:42:44 nyan named[60]: command channel listening on 127.0.0.1#953
Sep 2 08:42:45 nyan named[60]: zone 0.0.127.in-addr.arpa/IN: \
loaded serial 20030121
Sep 2 08:42:45 nyan named[60]: zone 0.168.192.in-addr.arpa/IN: \
loaded serial 20030121
Sep 2 08:42:45 nyan named[60]: zone bcnet.ne.jp/IN: loaded serial 20030121
Sep 2 08:42:45 nyan named[60]: zone localhost/IN: loaded serial 20030121
Sep 2 08:42:45 nyan named[60]: running
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ほっ!!! なんとなくすっきりしないよーーーー 元の /var/run/named 以下を named.named にして pid ファイルを 変更して
nyan:~# ls -l /var/run/ | grep named
drwxr-xr-x 2 named named 4096 Sep 2 09:08 named/
nyan:~# ls -l /var/run/named/ | grep named
-rw-r--r-- 1 named named 3 Sep 2 08:42 tt_named.pid
再起動を かけると
nyan:~# cat /var/log/syslog
Sep 2 09:12:38 nyan named[60]: couldn't open pid file\
'/var/run/named/named.pid': Permission denied
Sep 2 09:12:39 nyan named[60]: exiting (due to early fatal error)
おなじみの ネットワークで 議論されている状態になる。これは /var/run が root 権限を持たないので不可能対策として /var/run を named.named にするなんぞいわれてるが /var/run 以下に named.pid 以外のファイルもあるのでこれはあまり納得できないむしろ /var/run/ の named 以下を root にする方が わかりやい セキュリテイは別として chroot で named (bind)を 動かすまでは root に 変更しておく最善とはいわないが、ここで touch 云々で pid ファイルを作成したが 今回の再起動で作成してない場合どうなるか?併せて見てみよう。
nyan:/var/run# pwd
/var/run
nyan:/var/run# ls -l | grep named/
drwxr-xr-x 2 named named 4096 Sep 2 09:08 named/
nyan:/var/run# chown -R root named/
nyan:/var/run# rm named/tt_named.pid
nyan:/var/run# ls -al named/
total 8
drwxr-xr-x 2 root named 4096 Sep 2 09:28 ./
drwxr-xr-x 3 root root 4096 Sep 2 09:12 ../
nyan:/var/run# ls -l | grep named/
drwxr-xr-x 2 root named 4096 Sep 2 09:28 named/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:/var/run# shutdown -r now
nyan:~# cat /var/log/messages | grep named
Sep 2 09:33:52 nyan named[60]: starting BIND 9.2.3
Sep 2 09:33:52 nyan named[60]: using 1 CPU
Sep 2 09:33:53 nyan named[60]: loading configuration from '/etc/named.conf'
Sep 2 09:33:53 nyan named[60]: no IPv6 interfaces found
Sep 2 09:33:53 nyan named[60]: listening on IPv4 interface lo, 127.0.0.1#53
Sep 2 09:33:53 nyan named[60]: listening on IPv4 interface eth0, \
192.168.0.5#53
Sep 2 09:33:53 nyan named[60]: command channel listening on 127.0.0.1#953
Sep 2 09:33:54 nyan named[60]: zone 0.0.127.in-addr.arpa/IN: \
loaded serial 20030121
Sep 2 09:33:54 nyan named[60]: zone 0.168.192.in-addr.arpa/IN: \
loaded serial 20030121
Sep 2 09:33:54 nyan named[60]: zone bcnet.ne.jp/IN: loaded serial 20030121
Sep 2 09:33:54 nyan named[60]: zone localhost/IN: loaded serial 20030121
Sep 2 09:33:54 nyan named[60]: running
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nyan:~# cat /var/run/named/named.pid
60
~~~~~~~~~~~~~~~~~~~~~~
nyan:~# ps ax | grep named
60 ? S 0:00 /usr/sbin/named
222 pts/0 S 0:00 grep named
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
とりあえずこれでゆこう、後、 named.conf とかで 独立の 場所を指定する方法も 考えられるが、それをするなら chroot