찾기: 파일 시스템 루프가 감지되었습니다.

찾기: 파일 시스템 루프가 감지되었습니다.

파일 찾기를 사용하려고 하면 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/namedinode 번호가 동일합니다. 연구에 따르면 수정 방법은 /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/namedfind

이 메시지는 이전에 이미 본 다른 디렉터리와 동일하다는 것을 인식하기 때문에 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).

영향을 받은 스크립트를 수정할 수 없는 경우(즉, 제3자가 작성했기 때문에) 보안 문제에 대한 해결책은 적어도 임시적으로는 바인딩-chroot 패키지를 제거하는 것입니다.

답변3

나는 이것이 어려운 링크라고 생각하지 않습니다. 일반적으로 디렉토리 하드 링크는 금지됩니다. 소프트 링크일 수도 있지만 설치 루프인 것 같습니다. 다시 설치하는 것처럼 보이 /var/named거나 설치 중일 수도 있습니다 . 어쩌면 바인드 설치( )이거나 일반 설치일 수도 있습니다./var/var/named/chrootmount -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기능은 디렉터리가 비어 있는 경우에만 작동합니다. 따라서 다음 솔루션을 사용하십시오.

  1. 멈추다named
  2. 디렉터리 생성/var/named/chroot/var/named
  3. 이 디렉터리에 빈 파일을 만듭니다.
  4. 시작named

관련 정보