
다음과 같은 내보내기가 있습니다.
/exports/nfs 192.168.1.0/24(fsid=1234,sec=krb5p,rw,no_subtree_check,root_squash,crossmnt,async)
/exports/share 192.168.1.0/24(fsid=2345,ro,no_subtree_check,all_squash,crossmnt,insecure)
이 두 공유에는 모두 동일한 디렉토리 바인드가 마운트되어 있습니다.
mount --bind /mnt/bin /exports/nfs/bin
mount --bind /mnt/bin /exports/share/bin
내 목표는 동일한 정보를 노출하되 krb5를 사용하여 공유만 쓰기 가능하도록 하는 것입니다.
클라이언트가 /exports/share를 마운트할 때마다 바인드된 디렉토리를 찾을 수 없습니다.
ls: cannot access '/mnt/share/bin': Operation not permitted
NFS 서버에서 다음을 볼 수 있습니다
rpc.mountd[12080]: /exports/nfs/bin and /exports/share/bin have same filehandle for 192.168.1.0/24, using first
이 디렉토리 하나는 RW(krb5p)이고 다른 하나는 RO(krb5 없음)를 192.168.1.0/24에 노출하려면 어떻게 해야 합니까?
답변1
나는 이것을 해결할 수 있었다.
바인드 디렉터리를 내보내고 거기에도 고유한 fsid를 설정해야 했습니다. 나는 원래 공유 루트의 fsid로 충분할 것이라고 생각했습니다.
/exports/nfs 192.168.1.0/24(fsid=1234,sec=krb5p,rw,no_subtree_check,root_squash,crossmnt,async)
/exports/nfs/bin 192.168.1.0/24(fsid=1235,sec=krb5p,rw,no_subtree_check,root_squash,crossmnt,async)
/exports/share 192.168.1.0/24(fsid=2345,ro,no_subtree_check,all_squash,crossmnt,insecure)
/exports/share/bin 192.168.1.0/24(fsid=2346,ro,no_subtree_check,all_squash,crossmnt,insecure)