
私は、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/exports
mount
** 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
resvport
Mac (クライアント) 側では、insecure
サーバー側でのエクスポートの必要性がなくなります。
UID/GID 1000 は、Mac クライアントから見た場合、サーバー上の「don」ユーザーです。 Mac クライアント端末で作成されたサンプル テキスト ファイル
サーバー上での表示: Ubuntu VM への SSH 経由の /home/don の表示
答え3
解決策の 1 つは、両方のプラットフォームで同じグループ ID を持つグループを作成し、両方のプラットフォームのユーザーをそのグループのメンバーにして、anongid パラメータをこのグループ ID に変更することです。