一部のユーザーが利用できるNFSv4を介してフォルダーを共有したいのですが、アクセス許可の問題があります。
SetGIDを使用してフォルダーのアクセス許可を設定し、フォルダーグループの所有者で新しいファイルが作成されるようにしました。ただし、ユーザーはグループへのアクセス許可なしでファイルを自由に作成できます(実際、デフォルトユーザーのUMASKは700であるため、これは常に発生します)。
私は最終的に適用しようとしました このソリューションはACLを使用してディレクトリumaskを強制します 。しましたが、期待通りに動作しませんでした。 NFS wiki で読んだところによると、通常のACLはNFSv4では機能せず、nfs4固有のACLツールを使用する必要があります。
しかし、私はいくつかの問題を抱えています。サーバーにnfs4-acl-toolsをインストールしようとしましたが、次のようになりました。
# nfs4_getfacl /export/proyectos/
Operation to request attribute not supported.
はい、パーティションはACLサポートでマウントされています。
/dev/mapper/mpath4-part1 /export/proyectos ocfs2 rw,relatime,_netdev,heartbeat=local,nointr,data=ordered,errors=remount-ro,usrquota,coherency=full,user_xattr,acl 0 0
そして、通常のACLが機能しています。
# getfacl /export/proyectos/
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: export/proyectos/
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx
メーリングリスト で提案されているようにnfs4_getfaclをトレースし、これを取得しました:
# strace nfs4_getfacl /export/proyectos
<stripped>
getxattr("/export/proyectos", "system.nfs4_acl", 0x0, 0) = -1 EOPNOTSUPP (Operation not supported)
<stripped>
Nfs4_getfaclは正しいフラグを要求していますか? nfs4_aclsはどのファイルシステムにもまったく実装されていないと思いました。現在、nfs4はある種のnfs4acl-posixaclマッピングに依存していました。しかし、私はもうわかりません。
NFSサーバーでは(ローカルファイルシステムにクエリを実行するため)getfacl
を使用し、NFSクライアントではnfs4_getfacl
を使用する必要があります。
NFSv4ACLとLinuxACL acl(5)は完全に異なる標準です! Linux NFSサーバーは、ACLを前後に変換します。
投稿を読んでください LinuxのnfsマウントにACLはありませんか? 。