ACL がまったくない NFS ボリューム (POSIX または NFS ボリューム) をエクスポート/マウントしようとしていますが、失敗します。
技術的な背景: 両側の最新の Debian、ext4 ボリューム。
目標: サーバー上で POSIX ACL を使用して厳密なアクセスを強制し、ユーザーは NFS を使用して他のマシン上のボリュームにアクセスできます (アクセスすることになります)。ただし、ディレクトリ/ファイルを所有するすべてのユーザーが ACL を変更できるため、ここでは適切ではありません。したがって、ユーザーが ACL を変更できないようにする必要がありますが、get/setfacl コマンドを単に削除するのは適切な方法ではありません。サーバー側のボリュームで ACL サポートを削除するのは適切ではありません...
そこで私の質問は:サーバー側ボリュームの ACL を削除せずに、NFS マウントからの ACL を防ぐことは可能ですか? 可能な場合、どのように実行できますか?
no_acl / noacl を使用してテストしましたが、成功しませんでした。エクスポートは NFSv3 バージョンで "no_acl" オプションを使用して実行されています。/etc/exports で:
/exports ip-of-client-during-tests(rw,sync,no_acl,no_subtree_check,fsid=0)
/exports/data ip-of-client-during-tests(rw,sync,no_acl,no_subtree_check)
すべてのサービスが再ロード/再起動されました。次に、"noacl" オプション (何でも) を使用してクライアントにマウントします。
mount -t nfs -o noacl,vers=3 my-server:/exports/data/ /var/data/
/proc/mounts に次の内容が表示されます:
server-name:/exports/data/ /var/data nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,noacl,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=server-ip,mountvers=3,mountport=53844,mountproto=udp,local_lock=none,addr=server-ip 0 0
また、クライアントでは、所有する dir/files で get/setfacl を使用して ACL を取得/設定することができ、変更はサーバーのファイルシステムで確認できます。NFSv4 も使用してみましたが、変化はありませんでした。ちなみに、サーバーでは、/proc/fs/nfs/exports に "no_acl" オプションが表示されません。
/exports/data client-ip(rw,root_squash,sync,wdelay,no_subtree_check,uuid=0bac8439:e7e2488e:817358d2:f2c94b85,sec=1)
exportfs -v で表示されていても:
/exports/data client-ip(rw,wdelay,root_squash,no_subtree_check,no_acl,sec=sys,rw,root_squash,no_all_squash)
答え1
オプションなしでカーネルをコンパイルすることで、サーバー側のサポートを無効にすることができますCONFIG_NFSD_V3_ACL
。