client
役割server
が非常に明確な2つのサーバーがあります。server
つまり、NFS共有をホストしてclient
マウントします。通話中に存在する通話中のclient
複数のユーザー間に共有グループがあります。共有に対する私の権限は次のとおりです。shared
server
server
user@server $ ls -al /export/share/
drwxrwsr-x+ 3 shared shared 4096 Apr 19 01:25 .
drwxr-xr-x 3 root root 4096 Apr 12 20:10 ..
目標は非常に明確です。shared
グループのすべてのメンバーがそのディレクトリにファイルを作成、書き込み、削除できることを願っています。クライアントからls -la
マウントされたディレクトリは同じ結果を取得します。
NFS エクスポートファイルはserver
次のとおりです。
/export/share 10.0.0.0/24(rw,nohide,insecure,no_subtree_check,async)
内部に取り付けると次のようclient
になります/etc/fstab
。
10.0.0.1:/export/share /mnt/share nfs _netdev,noatime,intr,auto 0 0
mount
出力client
:
10.0.0.1:/export/share on /mnt/streams type nfs (rw,noatime,intr,vers=4,addr=10.0.0.1,clientaddr=10.0.0.2)
ただし、グループのユーザーを使用してそのディレクトリにファイルを作成できないようです。
たとえば、ユーザーは次のようになりますjack
。
user@server $ id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack),1010(shared)
インストールされたフォルダ内のファイルをタッチしようとすると、権限client
が拒否されます。
user@client $ sudo -u jack touch /mnt/share/a
touch: cannot touch `/mnt/share/a': Permission denied
期待どおりに機能しないのはなぜですか?jack
彼はこのグループのメンバーなので、このフォルダ内にファイルとフォルダを作成できますかshared
?
答え1
/etc/passwd
/ etc / groupに含まれるユーザー/グループ情報をどのように伝播しますか?通常、/etc/passwd
/etc/group
これらのマウントを自動的にマウントするすべてのシステムにファイルを同期させるには、NIS、LDAP、またはrsyncを使用する必要があります。それ以外の場合、クライアントはファイルシステムの権限について何も知りません。
注意深く読んでみてください。国家情報院ガイド。
答え2
NFSは、名前ではなく実際の数字「groupid」と「userid」を使用します。グループとユーザーがサーバーとクライアントで同じIDを持っていることを確認してください。サーバーとクライアントの合計を確認してください/etc/passwd
。/etc/group
理想的な設定は、NISまたはLDAPサーバーを介してすべてのユーザーとグループを共有することです。