web-dev-qa-db-ja.com

ZFSNFSエクスポートユーザーマッピング

小さなホームネットワークでZFSNFSエクスポートを使用しようとしています。これまでのところ、エクスポートとマウントを行うことができましたが、マウントされたディレクトリはユーザー「nobody」にマップされ、読み取り専用です。マウントに書き込めたらいいのですが。

サーバーはSolaris11.3を実行しており、を使用してホームディレクトリをエクスポートしました。

zfs set share.nfs=on pool/export/home/nfs

このシステムでは、1001のuidと10のgidがあります。

LinuxとmacOSにマウントしてみました。 Linuxでは私のuid/gidは両方とも1000で、macOSでは501/20です。 FreeBSDからのマウントは、uidが同じであるため、読み取り/書き込みで機能します。

この問題は、uid(およびgids)が異なることが原因であると思います。私が試したいくつかのこと

  • クライアント側、-o vers = 3を使用してNVSv3としてマウントします
  • サーバー側、anon = 1001でエクスポート

どちらも効果はありませんでした。

私は2つの可能な解決策を見ます:

  1. Uid/gidsを調和させます。 Linux/FreeBSDシステムではそれほど多くのものを持っていないので、それを行ってもかまいません。私は自分のMacBookでそれを試みるのに少し気が進まない。
  2. マップする方法を見つける

編集:これが要求された情報です

# share
rpool_export_home_paulf /export/home/paulf      nfs     sec=sys,rw  

そして

# sharectl get nfs
servers=1024
lockd_listen_backlog=32
lockd_servers=1024
lockd_retransmit_timeout=5
grace_period=90
server_versmin=2
server_versmax=4
client_versmin=2
client_versmax=4
server_delegation=on
nfsmapid_domain=
max_connections=-1
protocol=ALL
listen_backlog=32
device=
showmount_info=full
server_authz_cache_refresh=600
netgroup_refresh=600
resvport=false
1
Paul Floyd

共有に書き込めないという問題は、あなたが自分で述べたようにUIDGIDが異なるためです。

これを行う最も簡単な方法は、同じGIDを使用して両方のマシンでグループを作成し、共有の所有権をグループに変更してから、ユーザーをグループに追加することです。

SolarisサーバーとLinuxマシンの両方で:

groupadd -u GID nfsgroup

Solarisサーバーの場合:

chown :nfsgroup /nfs/share

Linuxマシン上。

usermod -aG nfsgroup linuxuser

UIDを変更してそれを行うこともできますが、それは少し複雑です。上記のコマンドはあなたが望むものを与えるでしょう。

1
Nasir Riley