web-dev-qa-db-ja.com

NFSフォルダーのアクセス許可を適切に設定する方法取り付け側で許可が拒否されました。

開発サーバーのNFSフォルダーに接続しようとしています。開発サーバー上のフォルダーの所有者はdarrenおよびグループdarrenです。

ディスクユーティリティを使用してMacにエクスポートしてマウントするとマウントされますが、フォルダを開こうとすると、アクセス許可がないと表示されます。 rw、sync、no_subtree_checkを設定しました。 Macのユーザーは、たくさんのグループを持つ不機嫌です。

フォルダーにアクセスするには、同じグループとユーザーを設定する必要がありますか?

47
Darren

NFSはRPC認証の上に構築されています。 NFSバージョン3では、最も一般的な認証メカニズムはAUTH_UNIXです。クライアントシステムのユーザーIDとグループIDは各RPC呼び出しで送信され、アクセスされているファイルに対するこれらのIDの権限がサーバーでチェックされます。これが機能するには、サーバーとクライアントでUIDとGIDが同じである必要があります。ただし、all_squash、anonuid、およびanongidエクスポートオプションを組み合わせることにより、すべてのアクセスを単一のユーザーおよびグループとして強制的に発生させることができます。 all_squashはすべてのUIDとGIDを匿名ユーザーにマップし、anonuidanongidは匿名ユーザーのUIDとGIDを設定します。たとえば、開発サーバーのUIDとGIDが両方とも1001の場合、次のような行でホームディレクトリをエクスポートできます。

/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)

NFSバージョン4にはあまり詳しくありませんが、クライアントにrpc.idmapdを設定して、サーバーに送信するuidとgidを変更できると思います。

66
sciurus

NFSをマウントするときは、NFSをマウントするときに使用する権限が、サーバー上にあるものと一致する必要があります。たとえば、ユーザーが読み取り専用アクセスしか持っていない場合、読み取り/書き込みでマウントすると、実際にマウントをロードしようとしたときに投稿で述べたのと同じエラーが表示されます。残念ながら、これは実際にマウントしたときではなく、フォルダにアクセスしたときにのみ表示されます。

また、ユーザーNFSがサーバー上で実行されており、クライアント上のユーザーが同じUIDとGIDを使用していることを確認する必要もあります。これらの値を確認するには、サーバーとクライアントの両方でid darrenを実行します。 UIDとGIDの値が一致しない場合は、/etc/passwdを編集して一致させることができます。ただし、値を任意に変更する前に、何を行っているかを理解しておいてください。

いくつかの良い情報源:

これが役に立てば幸いです!

28
Andrew M.

両方のサーバーでUIDとGIDが一致していますか?これは、ログインやグループ名ではなく、アクセス制御に使用しているものです。

2
JOTN