CentOS 6.4がインストールされた2台のマシンを同じプライベートネットワークに接続しています。
そのうちの1つはNFSサーバーであり、もう1つはクライアントです。
サーバーマシン(サーバー)で、/net/directory
ファイルに次の行を追加して、ディレクトリ/etc/exports
をエクスポートしました
/net/directory *(rw,sync,no_root_squash)
サービスが開始されたら、クライアントに行き、/etc/fstab
にマウントポイントを追加しました
server:/net/directory /client/directory nfs defaults 0 0
そしてマウント
# mount /client/directory
問題は、クライアントからマウントポイント内に新しいファイル/ディレクトリを作成すると、サーバー側の不明なユーザーとして作成されたときに、そのファイルがnobody:nobody
としてマップされることです。
例を示します(説明のため)
クライアント側にのみ、testuser
という同じ名前のユーザーとグループがあります
クライアント側では、testuser
としてファイルを作成します
[testuser@client ~]# touch /client/directory/test
次に、ディレクトリの内容を一覧表示します
[testuser@client ~]# ls -l /client/directory
total 0
-rw-r--r--. 1 nobody nobody 0 Jul 2 16:46 test
しかし、サーバー側ではすべてが期待どおりです。
[root@earth ~]# ls -l /net/directory
total 0
-rw-r--r--. 1 1001 1001 0 Jul 2 16:46 test
クライアント側でも同じ結果が欲しい:
-ファイルはUID:GIDが1001:1001である必要があります
何が悪いのですか?これはサーバーまたはクライアントの問題ですか?
私はいくつかのNFSマニュアルを探しましたが、何も助けになりませんでした。
(サーバー側でユーザーを作成せずに)これを行う方法を誰かが知っていますか?
ありがとうございました。
/etc/idmapd.confのドメインがクライアントとサーバーで同じであることを確認します。 rpc.idmapdがクライアントとサーバーで実行されていることを確認します。そしてもちろん、ユーザーはクライアントとサーバーに存在する必要があります。 NFSv4はネットワーク上のユーザープリンシパルを使用し、適切なマッピングを提供するのはクライアントとサーバーの責任です。 AUTH_SYSを使用すると、作成時にサーバーに伝播されるローカルuid/gidが使用されますが、「ls」を使用するにはマッピングが必要です。