无法从 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

我看到其他一些人也遇到过这个问题,但我见过的唯一解决方案是将整个磁盘 chmod 为 777,而我宁愿避免这样做。不幸的是,我无法在我的系统上使用 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,使用“仅主机”网络直接连接到虚拟机。据推测这可以在两台物理机之间工作。

*** 请注意,虚拟机未启用防火墙,因为它是在我的 Mac 中运行的仅主机虚拟机。显然,您需要在服务器上的防火墙上正常打开端口才能实现此目的。

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)

exportfs -a*** 请记住在编辑文件后运行/etc/exports,然后才能mount在 Mac 客户端上运行。

** 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 

resvportinsecure在 mac(客户端)端消除了在服务器端导出的需要。

UID/GID 1000 是服务器上的“don”用户,从 mac 客户端可以看到: 在 Mac 客户端上创建的示例文本文件

它在服务器上的样子: 通过 ssh 进入 ubuntu 虚拟机查看 /home/don

答案3

一种解决方案:在两个平台上创建一个具有相同组id的组并让两个平台上的用户成为该组的成员,然后将anongid参数更改为这个组id。

相关内容