我正在尝试使用 NFS 与运行 OS X 10.9.5 的 Mac 共享安装在 Ubuntu 服务器上的外部驱动器。我无法从 Mac 访问挂载点。
相关行/etc/exports
是:
/mnt/goflex (rw)
我在Mac上运行的命令是:
sudo mount -t nfs TV:/goflex /private/goflex
这是我收到的错误消息:
mount_nfs: can't mount /goflex from TV onto /private/goflex: Permission denied
当我showmount -e TV
在 Mac 上运行时,它确实看到了导出。
有人能指出我做错了什么吗?
答案1
当我尝试将 git repo 目录从 Ubuntu 挂载到 OSX 10.10.3 时,我也遇到了同样的问题。
为了完成这项工作,我做了几件事:
- 我在 Ubuntu 中建立了一个名为共享,我在其中添加了一个与我的 OSX 用户同名的新用户。我还将我的 git 存储库的组所有权更改为共享。我在下一步中使用了 uid 和 gid。
- 像您一样,我设置了 NFS 导出并使用进行了验证显示安装。然而,除了读写,我还包括了以下内容:(rw,同步,no_root_squash,no_subtree_check,不安全,anonuid=<<uid>>,anongid=<<gid>>)。我在某处读到不安全在处理 mac 时尤其重要(与 tcp 端口限制有关)。如果没有该选项,则在安装时可能会出现“操作不允许”的情况。
- 正确拼写了该死的目录路径 - 这是最明显的问题,但我花了很长时间才弄清楚。似乎如果 NFS 请求中的源目录不存在,您会收到“权限被拒绝”而不是更直观的“目录不存在”。
答案2
此外,Mac 仅支持 NFSv3。这需要额外的辅助服务,而这又需要在服务器的防火墙中开放额外的端口(相比之下,NFSv4 只需要这些端口)。
额外内容包括 mountd (端口 20048) - 这是我遇到的问题 - 以及 portmap/rpcbind (端口 111)。