OSX クライアントから Linux NFS 共有に書き込めません

OSX クライアントから Linux NFS 共有に書き込めません

私は、OSX 10.6 ラップトップから Debian Squeeze ボックスから共有されている NFS ドライブに接続しようとしていますが、Mac からディスクに書き込むことができません。/etc/exports には次の内容があります。

/mnt/usbdrive 192.168.1.0/24(rw,insecure,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)

すべてのリクエストが、ドライブ全体を所有する私のユーザーである UID/GID 1000/1000 から送信されるようにします。ただし、ドライブを Mac にマウントすると、すべてが 1000/1000 によって所有されるため、ディスクに書き込むことはできません。

~> ls -la /Volumes/USBDrive/
drwxr-xr-x  6 1000  1000    4096  5 Sep 19:31 .
drwxrwxrwt@ 4 root  admin    170  6 Sep 22:41 ..
drwx------  2 1000  1000   16384 28 Aug 21:24 lost+found
drwxr-xr-x  2 1000  1000    4096 29 Aug 15:35 music

この問題を抱えている人は他にも何人かいますが、私が見た唯一の解決策はディスク 777 全体を chmod することでしたが、これは避けたいです。残念ながら、私のシステムでは nfs-user-server を使用できないため、UID/GID マッピングは使用できません。

答え1

すべてのファイルを uid 1000 に割り当てるのではなく、Mac 上のすべてのファイルを自分の uid に割り当てます (id -u自分の uid を確認するには、ターミナルで実行します)。ついでに、gid ( id -g) についても同様にします。

答え2

これは、MacOS 11.1 BigSur (nfs クライアント) で、VirtualBox VM 内で Ubuntu 20.04 を実行し、VM への直接接続に「ホストのみ」ネットワークを使用した場合に機能しました。おそらく、これは 2 台の物理マシン間でも機能するでしょう。

*** 注: VM は Mac 内で実行されているホスト専用の VM であるため、ファイアウォールが有効になっていません。当然、このためにはサーバーのファイアウォールでポートを開く必要があります。

Macbook (クライアント) は 192.168.56.1 Ubuntu VM (サーバー) は 192.168.56.11

/etc/exportsサーバー上で編集:

/home/don     192.168.56.1(rw,sync,no_subtree_check,anonuid=1000,anongid=1000,all_squash)

*** Mac クライアントで実行する前に、ファイルをexportfs -a編集した後で必ず実行してください。/etc/exportsmount

** id 1000とgid 1000は、Ubuntu VM上の「don」ユーザーです

Macの場合:

sudo mount -o resvport,rw -t nfs 192.168.56.11:/home/don /Users/don/ubuntudevnfs

そして

sudo umount -t nfs /Users/don/ubuntudevnfs 

resvportMac (クライアント) 側では、insecureサーバー側でのエクスポートの必要性がなくなります。

UID/GID 1000 は、Mac クライアントから見た場合、サーバー上の「don」ユーザーです。 Mac クライアント端末で作成されたサンプル テキスト ファイル

サーバー上での表示: Ubuntu VM への SSH 経由の /home/don の表示

答え3

解決策の 1 つは、両方のプラットフォームで同じグループ ID を持つグループを作成し、両方のプラットフォームのユーザーをそのグループのメンバーにして、anongid パラメータをこのグループ ID に変更することです。

関連情報