Re: chrootを適用した状態のbind関連情報に関して ( No.1 ) |
|
- æ¥æï¼ 2012/05/18 07:13
- ååï¼ stranger
- 参照: http://ja.528p.com/
- CentOS 6.xでは
bind-chrootをinstallした時点で 下記スクリプトを実行し、必要なdevファイルを作成します
postinstall scriptlet (using /bin/sh): if [ "$1" -gt 0 ]; then [ -e /var/named/chroot/dev/random ] || ¥ /bin/mknod /var/named/chroot/dev/random c 1 8 [ -e /var/named/chroot/dev/zero ] || ¥ /bin/mknod /var/named/chroot/dev/zero c 1 5 [ -e /var/named/chroot/dev/zero ] || ¥ /bin/mknod /var/named/chroot/dev/null c 1 3 rm -f /var/named/chroot/etc/localtime cp /etc/localtime /var/named/chroot/etc/localtime if ! grep -q '^ROOTDIR=' /etc/sysconfig/named; then echo 'ROOTDIR=/var/named/chroot' >> /etc/sysconfig/named /sbin/service named try-restart > /dev/null 2>&1 || :; fi fi;
/etc/rc.d/init.d/named起動スクリプトの中で mount_chroot_confをstart時に実行して chroot環境に移行しています mount --bind が「みそ」(bindはmountコマンドのオプション)
ROOTDIR_MOUNT='/etc/named /etc/pki/dnssec-keys /var/named /etc/named.conf /etc/named.dnssec.keys /etc/named.rfc1912.zones /etc/rndc.conf /etc/rndc.key /usr/lib64/bind /usr/lib/bind /etc/named.iscdlv.key /etc/named.root.key'
mount_chroot_conf() { if [ -n "$ROOTDIR" ]; then for all in $ROOTDIR_MOUNT; do # Skip nonexistant files [ -e "$all" ] || continue
# If mount source is a file if ! [ -d "$all" ]; then # mount it only if it is not present in chroot or it is empty if ! [ -e "$ROOTDIR$all" ] || [ `stat -c'%s' "$ROOTDIR$all"` -eq 0 ]; then touch "$ROOTDIR$all" mount --bind "$all" "$ROOTDIR$all" fi else # Mount source is a directory. Mount it only if directory in chroot is # empty. if [ -e "$all" ] && [ `ls -1A $ROOTDIR$all | wc -l` -eq 0 ]; then mount --bind "$all" "$ROOTDIR$all" fi fi done fi }
mount bind で net検索すれば意味がわかると思います ここのサイトの説明は少し古いのかもしれない
|
Re: chrootを適用した状態のbind関連情報に関して ( No.2 ) |
|
- æ¥æï¼ 2012/05/18 08:15
- ååï¼ 管理者
- > stranger 様
度重なるご指摘とフォロー、ありがとうございます。
> Centくん 様 strangerさんが指摘の様に、現時点でのコンテンツは古いものです。 現在はbind-chrootを導入(インストール)した時点で「/etc/sysconfig/named」内の「ROOTDIR」設定値で mount --bindによって自動的にchroot適用前のパスがマウントされるようになり、管理者は意識しなくても良いようになってます。
bind-chroot導入後、bindサービスを実行する前は(例として)「/var/named」配下にゾーンファイル群があり、 「/var/named/chroot/var/named/」配下には何もファイルは存在しないと思います。 ここで、bindサービスを実行すると、strangerさんにご説明頂いた通り「mount bind」によって、 bind関連のファイルが「BOOTDIR」配下にマウントされます。
当サイトの説明では古い情報ですので「移行前のファイルを変更しても反映はされないので注意が必要です。」などと記載 しているのでコピーする必要があるのかの混乱を招いてしまいました。大変、申し訳ありません。
結果的にbind-chroot導入後は、何もせずにbindサービスを実行すれば問題ありません。 ただし、設定ファイル変更時はサービスを停止後、本来の設定ファイルを変更して再起動するようにしてください。
|
Re: chrootを適用した状態のbind関連情報に関して ( No.3 ) |
|
- æ¥æï¼ 2012/05/18 09:20
- ååï¼ stranger
- 参照: http://ja.528p.com/
- 自動で処理してくれることは便利なようで、融通がきかないということでもあります
CentOS(RHEL)の意図した設定を施す必要があります
bindのchrootの方法を少し理解すれば、もっと融通がきくようになります
>ここで、bindサービスを実行すると、strangerさんにご説明頂いた通り「mount bind」によって、 >bind関連のファイルが「BOOTDIR」配下にマウントされます。
mount bind ではなく mount --bind なので bind(named)サービスと mountのオプション --bind を混同されないように
|
Re: chrootを適用した状態のbind関連情報に関して ( No.4 ) |
|
- æ¥æï¼ 2012/05/18 11:03
- ååï¼ 管理者
- > mount bind ではなく mount --bind なので
> bind(named)サービスと mountのオプション --bind を混同されないように 失礼しました。脱字でございます。 オプション「--bind」とbind(named)は全く別物ですが「bind」というスペルが紛らわしいですね。 まあ、「束縛」「拘束」や「結びつける・関連付ける」などと言う意味などで仕方ありませんが・・・ bind(named)の為のオプションではないという事は認識済みです。
|
Re: chrootを適用した状態のbind関連情報に関して ( No.5 ) |
|
- æ¥æï¼ 2012/05/18 11:25
- ååï¼ stranger
- 参照: http://ja.528p.com/
- 蛇足
上位のヴァージョンのbind(named)では /etc/rndc.key と/var/named/chroot/etc/rndc.keyが 共に存在すると警告がでる場合があるので その都度、対処ということになります
|