NFSはフォルダをマウントしますが、ファイルはマウントしません

NFSはフォルダをマウントしますが、ファイルはマウントしません

NFSv4マウントを使用してファイルを表示させるのに問題があります

Server: Ubuntu 20.04, 192.168.1.1
Client: Ubuntu 18.04, 192.168.1.2

サーバー上にはフォルダとファイルがあります

/home/server/files/myfile.pdf

(ユーザー アカウント名として「server」が使用されていることに注意してください)。元のファイルの完全な所有権と権限のチェーンは次のとおりです。

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」グループに属しています。

サーバーでは、ディレクトリをに/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?

この ServerFault質問似ているように聞こえますが、これは Windows に関することであり、唯一の答えが当てはまるかどうかはわかりません。

この Unix.SE質問Windows/Linux セットアップの NFS ファイル権限に関するものです。そこから得られる情報はすべて、私がすでに知っていて、対処済みだと思っているものです。

自分が何について話しているのかわかっている場合のみ、返信してください。どうしても推測を投稿したい場合は、推測であることを明記してください。または、読者が違いを判断できる十分な情報を提供してください。

関連情報