中央NASのNFSマウントディレクトリを持つRHEL 5.9サーバーがあります。これには、aird1(11055):app_dev(1101)
権限を持つユーザー/グループが所有するディレクトリがありますrwxrwsr-x
。シードapp_devへ)。最後に、grid(1001)
ユーザーとして実行されるプロセスがあります。
問題は、grid
ユーザーがそのディレクトリに書き込めないにもかかわらず書き込むことができることです。 NFSマウントディレクトリと同じ所有権と権限を使用してローカルテストディレクトリを作成すると、そのディレクトリに書き込むことはできません。これは予想通りです。
何らかの理由で、NFSマウントは権限を完全に尊重しません。例は次のとおりです。
$ ls -ldn /nfs/aird1/tmp
drwxrwsr-x 5 aird1(11055) app_dev(1101) 24576 Oct 17 13:21 /nfs/aird1/tmp
ディレクトリはディレクトリ所有であり、aird1(11055):app_dev(1101)
ACLは添付されていません。
自分のアカウントでファイルを作成しようとすると失敗します。
$ id
uid=20501(myuser) gid=1003(mygroup) groups=10(wheel),1003(mygroup)
$ ls -l /nfs/aird1/tmp/xyz
ls: /nfs/aird1/tmp/xyz: No such file or directory
$ touch /nfs/aird1/tmp/xyz
touch: cannot touch `/nfs/aird1/tmp/xyz': Permission denied
これは予想されるものですが、これはユーザーの場合と同じですgrid
。
$ id
uid=1001(grid) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
$ touch /nfs/aird1/tmp/xyz
$ ls -l /nfs/aird1/tmp/xyz
-rw-r--r-- 1 grid(1001) app_dev(1101) 0 Oct 17 13:24 xyz
このファイルをどのように作成できますか?ディレクトリ所有権のUIDとGIDの間に重複はなく、myuser
一部のgrid
UID / GIDはファイルを生成できますが、他のUID / GIDは生成できません。
これは次の記録です/etc/fstab
。
nas:/vol/... /nfs nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,nosuid,actimeo=0 0 0
どんなアイデアがありますか?
ありがとうございます!
答え1
NFSは、もともとすべてのコンピュータで同じアカウント(ユーザー、グループ、およびグループのメンバー)を持つネットワークで使用するように設計されていました。そうしないと、奇妙なことが起こります。最近の NFS 実装では、クライアントとサーバー間でユーザーとグループ ID を再マップする方法があります。
何が起こっているのかについての私の推測は次のとおりです。このディレクトリは、app_dev
グループ1101(クライアントから呼び出される)によって書き込み可能です。サーバーはuser1001の代わりに要求を確認し(クライアントから呼び出されgrid
、サーバーは関係ありません)、user1001にディレクトリに書き込もうとします。/nfs/aird1/tmp
サーバーのユーザー1001はグループ1101に属しているため、このディレクトリに書き込むことができます。したがって、要求は承認されます。