NFSv3共有をエクスポートするDebian 7を実行するサーバーと、それにアクセスするCentos 5を実行するクライアントがあります。これは正常に機能しますが、プライマリ以外のグループに基づくアクセス許可に関する問題が1つあります。
サーバーで770のアクセス許可を持つディレクトリを作成すると、ディレクトリの所有者と同じグループに属しているクライアントユーザーが、そのグループがユーザーのプライマリグループでない場合でもアクセスできません。
ここで問題が何であるか考えていますか?ディレクトリがユーザーのプライマリグループに属している場合は正常に機能しますが、セカンダリグループに属している場合は機能しません。
問題は、debianではデフォルトで有効になっている--manage-gids
のrpc.mountd
オプションに関連している可能性があります(/etc/default/nfs-kernel-server
を参照)。
Manページから:
-gまたは--manage-gids
カーネルからの要求を受け入れて、ユーザーID番号をアクセス制御で使用するグループID番号のリストにマップします。 NFS要求には、通常(Kerberosまたはその他の暗号化認証を使用する場合を除いて)、ユーザーIDとグループIDのリストが含まれます。 NFSプロトコルの制限により、最大16個のグループIDをリストできます。 -gフラグを使用する場合、クライアントから受信したグループIDのリストは、サーバーでの適切な検索によって決定されたグループIDのリストに置き換えられます。 「プライマリ」グループIDは影響を受けないため、クライアントでのnewgroupコマンドは引き続き有効です。この機能には、バージョン2.6.21以降のLinuxカーネルが必要です。
したがって、「16グループ」の制限に達しない場合は、サーバーでこのオプションを無効にしてみてください。
私の問題は、NFSサーバーではグループ( "www-data")を持っていなかったが、ファイルがuser:www-dataとして表示されていたことでした。そこで、クライアントと同じIDでグループを作成し、
chown -R user:www-data
そして問題は消えました。