
NFSv4 마운트를 사용하여 파일을 표시하는 데 문제가 있습니다.
Server: Ubuntu 20.04, 192.168.1.1
Client: Ubuntu 18.04, 192.168.1.2
서버에는 폴더와 파일이 있습니다
/home/server/files/myfile.pdf
('서버'가 사용자 계정 이름으로 사용됩니다.) 원본 파일의 전체 소유권 및 권한 체인은 다음과 같습니다.
drwxr-xr-x root:root /
drwxr-xr-x root:root /home/
drwxr-xr-x server:server /home/server/
drwxrwxr-x server:nfsgroup /home/server/files/
-rwxrwxrwx server:nfsgroup /home/server/files/myfile.pdf
여기서는 내가 만든 'user':'group' 유틸리티의 예를 볼 수 있습니다.
nfsuser uid=127
nfsgroup gid=134
'nfsuser'와 'server'는 모두 'nfsgroup' 그룹에 있습니다.
서버에는 항목과 함께 in /files/
에 바인드 마운트된 디렉토리가 있습니다./srv/nfs4/files/
/etc/fstab
/home/server/files /srv/nfs4/files none bind 0 0
이것은 성공했으며 /srv/nfs4/files/myfile.pdf
파일이 다음과 같이 명확하게 표시됩니다.
-rwxrwxrwx server:nfsgroup /srv/nfs4/files/myfile.pdf
마운트되고 제공되는 파일의 전체 소유권 및 권한 체인은 다음과 같습니다.
drwxr-xr-x root:root /
drwxr-xr-x root:root /srv/
drwxrwxr-x server:nfsgroup /srv/nfs4/
drwxrwxr-x server:nfsgroup /srv/nfs4/files/
-rwxrwxrwx server:nfsgroup /srv/nfs4/files/myfile.pdf
/srv/nfs4/
이제 바인드 마운트가 포함된 전체 디렉토리를 files/
클라이언트로 내보내고 싶습니다 . 서버에 다음 항목이 있습니다 /etc/exports
.
/srv/nfs4 192.168.1.2(rw,sync,fsid=0,root_squash,all_squash,anonuid=127,anongid=134,no_subtree_check)
특히 all_squash,anonuid=127,anongid=134
설정 그룹을 사용하면 클라이언트 사용자 'client'가 권한과 관련하여 'nfsgroup'에서 'nfsuser'로 인식됩니다.
를 사용하여 이를 내보낸 후 명령을 사용하여 클라이언트의 $ sudo exportfs -ra
루트 수준 디렉터리에 마운트합니다 ./nsffiles/
$ sudo mount -t nfs 192.168.1.1:/srv/nfs4 /nsffiles
결과는 내가볼 수 있습니다클라이언트 내의 내 보낸 files/
디렉터리입니다 . /nsffiles/
그러나 내용을 볼 수 없습니다.
$ ls -Alhd /nsffiles/
drwxrwxr-x 8 client 134 4.0K Nov 14 20:37 /nsffiles/
$ ls -Alhd /nsffiles/files/
drwxr-xr-x 2 root root 4.0K Nov 14 20:36 /nsffiles/files/
$ ls -Alh /nsffiles/files/
total 0
NFS 클라이언트가 디렉토리를 전혀 볼 수 있다는 사실은 files/
내 NFS 서비스나 로컬 네트워크에 근본적으로 문제가 없음을 나타냅니다. 방화벽 문제가 없으며 추가 패키지를 설치할 필요도 없습니다. 또한 이전에는 NFS 마운트가 약간 다른 폴더 구조( files/
예를 들어 집 외부의 디렉터리에 있음)에서 완벽하게 작동했기 때문에 그 점에 있어서 기본 사항은 괜찮다는 것을 알고 있습니다.
지금 작동하지 않는 가장 큰 원인은 이전 설정과 현재 설정 간의 미묘한 소유권/권한 변경이라고 가정합니다. 특히, 마운트된 디렉토리는
server side: `/srv/nfs4/` drwxrwxr-x server:nfsgroup
client side: `/nsffiles/` drwxrwxr-x client:134
포함된 디렉토리는 다음과 같습니다.
server side: `/srv/nfs4/files/` drwxrwxr-x server:nfsgroup
client side: `/nsffiles/files/` drwxr-xr-x root:root
즉, 마운트된 디렉터리의 경우 권한이 server:nfsgroup -> client:134
예상대로 로 변환됩니다. 그러나 포함된 디렉터리에 대한 권한은 server:nfsgroup -> root:root
. 왜요 ?root:root
client:134
이 서버 오류질문비슷하게 들리지만 이는 Windows에 관한 것이므로 유일한 대답이 적용된다고 말할 수는 없습니다.
이 Unix.SE질문Windows/Linux 설정에 대한 NFS 파일 권한과 관련됩니다. 내가 얻을 수 있는 모든 정보는 내가 이미 알고 있고 내가 처리했다고 생각하는 것들입니다.
무슨 말인지 아시는 분만 답변 부탁드립니다. 터무니없는 추측을 게시하는 것을 거부할 수 없다면, 그것이 터무니없는 추측임을 밝혀주세요. 아니면 독자가 차이점을 알 수 있을 만큼 충분한 정보를 제공하세요.