NFS를 사용하여 파일 시스템을 마운트할 때 /mnt 아래의 디렉터리가 표시되지 않는 이유는 무엇입니까?

NFS를 사용하여 파일 시스템을 마운트할 때 /mnt 아래의 디렉터리가 표시되지 않는 이유는 무엇입니까?

/etc/exportsNFS 서버 에 NFS 공유를 설정한 / *(rw,no_root_squash,no_subtree_check) 다음 exportfs -a공유를 활성화하고 nfs 서버를 다시 시작했습니다.

/etc/auto.nfs다음을 포함 하는 공유를 마운트하기 위해 클라이언트 시스템에서 autofs를 사용하고 있습니다.foo -fstype=nfs4,soft,rw,noatime,allow_other server.tld:/

auto.master포함/mnt/nfs /etc/auto.nfs --timeout=30 --ghost

autofs를 다시 시작합니다(systemctl restart autofs.service).

그런 다음 서버의 모든 디렉터리를 봅니다. 하지만 /mnt/mounteddiskonserver에 마운트된 서버 디스크로 이동하려고 하면 더 이상 아무것도 표시되지 않습니다. 클라이언트 컴퓨터의 nemo 파일 브라우저에는 파일, 디렉토리 및 쓰기 권한이 없습니다. 서버의 /home/user로 이동하여 /mnt/mounteddiskonserver/files와 동일한 권한으로 서버의 모든 파일을 보고 삭제할 수 있습니다.

/mnt/mounteddiskonserver를 공유하도록 NFS 서버를 설정하면 /mnt/mounteddiskonserver 아래의 모든 파일과 디렉터리를 /etc/exports/mnt/mounteddiskonserver *(rw,no_root_squash,no_subtree_check)수 있고 읽고 쓸 수 있습니다.

답변1

루트 파일 시스템은 내보내기 옵션 목록에 포함되지 않습니다 crossmnt. 따라서 /mntNFS를 통해 액세스하려면 NFS 서버 아래의 각 개별 파일 시스템을 명시적으로 내보내야 합니다.

이는 실제로 좋은 일입니다. /devNFS를 통한 액세스 권한을 부여하는 것은 매우 유용한 일을 수행할 가능성이 낮고 NFS를 통한 액세스는 혼란스럽거나 심지어 해로울 /proc수도 있기 때문 입니다. /sys(마이너 디바이스 번호와 메이저 디바이스 번호를 통해 디바이스에 접근하기 때문에 NFS에 마운트된 디바이스 노드는 /dev여전히 디바이스의 해당 디바이스에 매핑됩니다.)클라이언트 호스트. 모든 종류의 캐싱으로 인해 NFS 내보내기에서 오래된 데이터가 제공될 수 있습니다 /proc. )

NFS 서버의 루트 파일 시스템을 내보내야 할 이유가 있을 수 있지만(제 생각에는 그 자체가 의심스러운 관행입니다), crossmnt내보내기 옵션을 추가하면 다중 배럴 개틀링 발로 얼굴을 쏠 수 있습니다. NFS 클라이언트 시스템에서 루트 액세스에 실수가 발생했습니다. 총을 사용하십시오. 꼭 필요한 경우 별도의 /etc/exports행을 만들고 /mnt옵션을 추가하세요 crossmnt.

관련 정보