ファイル検索を使用しようとするとfind -name "filename"
エラーが発生します。
./var/named/chroot/var/named' is part of the same file system loop as `./var/named'
コマンドを実行しましたが、ls -ldi /var/named/chroot/var/named/ /var/named
inode番号は同じです。研究によると、修正方法は/var/named/chroot/var/named/
ハードリンクを削除しrm -f
てディレクトリに再作成することですが、これはすでにディレクトリなので削除できないという話を聞きました。どうすれば解決できますか?私はCentos 6とPlesk 11を実行しています。
mount コマンドは、次の情報を提供します。
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /dev type tmpfs (rw,relatime)
none on /dev/pts type devpts (rw,relatime)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
/etc/named on /var/named/chroot/etc/named type none (rw,bind)
/var/named on /var/named/chroot/var/named type none (rw,bind)
/etc/named.rfc1912.zones on /var/named/chroot/etc/named.rfc1912.zones type none (rw,bind)
/etc/rndc.key on /var/named/chroot/etc/rndc.key type none (rw,bind)
/usr/lib64/bind on /var/named/chroot/usr/lib64/bind type none (rw,bind)
/etc/named.iscdlv.key on /var/named/chroot/etc/named.iscdlv.key type none (rw,bind)
/etc/named.root.key on /var/named/chroot/etc/named.root.key type none (rw,bind)
答え1
named
、DNSサーバーはchrootで実行されます。設定ファイルにアクセスするために、起動スクリプトはmount --bind
設定ディレクトリをchroot内に表示するようにします。など/var/named/
と同じ意味です。これは再帰的なディレクトリ構造なので、ナビゲーションを試みても実行は終了しないため、両方のディレクトリが実際に同じであることを認識し、そのメッセージを印刷して警告します。/var/named/chroot/var/named
/var/named/chroot/var/named/chroot/var/named
find
これは、以前に既に見た他のディレクトリと同じであることを認識しているため、find
内部的に検索しないことを意味します。/var/named/chroot/var/named
これは完全に無害なメッセージなので無視しても構いません。ジョブをスキップすると、/var/named/chroot/var/named
ジョブはfind
正常に続行されます。
答え2
このメッセージは戻りコード 1 をトリガーし、無視できず、リダイレクトも発生しません。
findutils findutils-4.4.2-6.el6.x86_64の使用
対応するバグレポートのようです。
Linuxカーネルを実行しているシステムでは、「find -printf%F」は「mount --bind」を使用して別の場所に再マウントされたファイルシステム上のファイルに対する誤った応答を生成しません。 (サバンナのバグ#14921)。
影響を受けたスクリプトを変更できない場合(つまり、サードパーティが作成したため)、セキュリティ上の問題に対する解決策は、少なくとも一時的にバインディング-chrootパッケージを削除することです。
答え3
私はこれが難しいリンクだとは思わない。通常、ディレクトリのハードリンクは禁止されます。ソフトリンクかもしれませんが、インストールループのようです。再インストールしているように見えたり、インストールして/var/named
いる可能性があります。おそらく、バインドインストール()または通常のインストールです。/var
/var/named/chroot
mount -o bind
mount
コマンドの出力を公開できますか?また、おそらくこれはchroot刑務所に必要なインストールなので、そのままにしておくことをお勧めします。
答え4
問題はディレクトリをにnamed
マウントすることによって発生します。この問題に対する解決策はinitスクリプトにもあります。/var/named
/var/named/chroot
mount_chroot_conf()
{
# Mount source is a directory. Mount it only if directory in chroot is
# empty.
上記のように、このmount
機能はディレクトリが空の場合にのみ機能します。したがって、次の解決策を使用してください。
- 止める
named
- ディレクトリの作成
/var/named/chroot/var/named
- このディレクトリに空のファイルを作成します。
- スタート
named