はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 chrootを適用した状態のbind関連情報に関して
日時: 2012/05/17 11:58
名前: Centくん

管理者様

いつもありがとうございます。
さて、貴HPの「chrootを適用した状態のbind関連情報」の表記に関して、
教えていただけますでしょうか?

BINDのインスト後、chrootを導入したのですが、例①のように表示されても、
例②のようなシンボリクリンクは張られず、chroot適用以前のように、
各ファイルが表示されます。
namedディレクトリ配下もnamed.confも同様です。

例①)
# ls -l /var/named/
named     1827     1  1 13:42 ?        00:00:00 /usr/sbin/named -u named -t /var/named/chroot

しかし、例②の場合は、表記どおりに表示されるのではなく、

例②)
# ls -l /var/named/
lrwxrwxrwx  1 root  root    43 2007-01-16 14:09 kajuhome.com.lan -> /var/named/chroot/var/named/kajuhome.com.lan

しかし、/var/named配下のファイルと/var/named/chroot配下のファイルを比較すると、
タイムスタンプが同じ同一のファイルがありました。

一見リンクしていないように見えて、リンクしているのでしょうか?
この設定状況(リンクしているように見えない)で問題ないのでしょうか?

なお、chroot設定は以前に行なったので、はっきりとは覚えておりませんが、
貴HPの該当ページを参考に、cpコマンドでコピーしたのかもしれません。
どちらのディレクトリにも同一のファイルがあるので、mvではなかったのだと推測しています。

ご教示頂けますと幸いです。


■貴サイトの参照したページ
http://kajuhome.com/bind.shtml#n11
メンテ

Page:  [1] [2]

■ コンテンツ関連情報

 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が
共に存在すると警告がでる場合があるので
その都度、対処ということになります
メンテ

Page:  [1] [2]

題名
名前  ("初心者"を含む名前は使用できません)
E-Mail
URL
パスワード 記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント
画像添付 (対応画像:JPEG/GIF/PNG [Max 500KB])

   クッキー保存

■ その他


Copyright(©)2004-2018 First home server construction. All Right Reserved.