私はいくつかのRHEL6マシンを持っています。 1つは、nfsマウントを残りにエクスポートすることです。サーバーにACLが設定されています(setfacl -m
)ですが、どのクライアントもそれらを表示していません。
これがserver1での私のエクスポートです:
/myexport server2.example.com(rw,async,no_root_squash)
これがserver2の私のfstabです:
server1.example.com:/myexport /mnt nfs4 noatime,async,lock 0 0
私はfstabマウントオプションにaclを追加しようとしましたが、うまくいきませんでした。クライアントでACLが表示されない理由を誰かが知っていますか?
ACLはNFS上で使用され、アクティブです。コマンドnfs4_getfacl
を使用して、NFSv4マウントのACLを表示します。
$ nfs4_getfacl /tmp/test
A::OWNER@:rwatTnNcCy
A::[email protected]:rxtncy
A::[email protected]:rwadtTnNcCy
A:g:GROUP@:rtncy
D:g:GROUP@:waxTC
A::EVERYONE@:rtncy
D::EVERYONE@:waxTC
ACLがLinux ACLと比べて非常に異なって見える理由は何ですか? NFSv4 ACL とLinux ACLacl(5)は完全に異なる標準だからです! Linux NFSサーバーはACLを前後に変換します。
Linux ls
がクライアント上でNFSv ACLを含むファイルに対して+
を表示しないのは非常に残念です。誤解を招く恐れがあります。
NFSでPOSIX ACLを使用するには、NFSv3を使用する必要がありました。
NFSv4 ACLは、POSIX ACLとはかなり異なります。最初のものは、非常に具体的なnfs4_getaclおよびnfs4_setaclを使用して設定されますが、後者は標準のgetfacl/setfaclバイナリーで構成されます。要するに、NFSv4 ACLはPOSIX ACLとは何の関係もありません(ところで、NFSv4 ACLは、Windows環境で使用されるCIFS ACLにかなり近いです)。