我正在尝试在我的 Ubuntu 服务器上设置一个 NFS 服务器,以便从我的 Mac OS X 10.6.4 桌面进行访问。我在 Ubuntu 端按照以下步骤开始本指南(快速启动)。当我最终尝试访问 Mac 上的 NFS 共享时,我得到了以下信息:
[/Network] cd fileserver
cd:cd:1: permission denied: fileserver
我终于成功了。下面我将概述如何操作。
服务器设置(Ubuntu 10.10)
/etc/exports
/export *(rw,sync,no_root_squash,no_subtree_check)
/export/fileserver *(rw,sync,no_root_squash,no_subtree_check)
/export/fileserver2 *(rw,sync,no_root_squash,no_subtree_check)
/etc/fstab
/fileserver/a/root /export/fileserver none bind 0 0
/fileserver/b/root /export/fileserver2 none bind 0 0
客户端设置(Mac OS X 10.6.7)
关键问题是id -u tsigo
服务器上是 1000,而在 Mac 上是 501。为了改变这种情况,我遵循了本指南请注意,这会带来潜在的灾难;请严格遵守指示。如果我再次这样做,我会在服务器上更改我的 ID。
更改我的用户 ID 并重新启动后,一切就变得非常简单了。
打开磁盘实用程序,转到文件> NFS 挂载并添加新条目。
NFS URL:nfs://gluttony/export/fileserver
挂载位置:/Network/fileserver
高级挂载参数:-i,-s,-P
答案1
正确,您需要在客户端和服务器上使用相同的uid
。虽然您可以在不“更改”客户端或服务器上的文件所有者的情况下实现这一点。如果您在导出文件中使用anonuid
和,all_squash
则可以将任何您想要的映射uid
到访问共享的客户端。
导出文件示例:
/home/brian *(rw,async,no_subtree_check,insecure,anonuid=1000,all_squash)
鉴于/home/brian
权限,drwxr-xr-x 24 1000 1000
您将拥有完全访问权限。希望这能有所帮助。
PS 这也应该适用,anongid
但由于某些奇怪的原因,它并不适用。
答案2
您需要在两台计算机之间拥有相同的 uid。如果您的 Mac 用户的 uid 为 501,而 Ubuntu 用户的 uid 为 1000,那么使用您当前的权限,您将正确获得“权限被拒绝”信息。您看,您只有用户才拥有完全访问权限齐戈其他人都只有目录的读取权限。
您要么需要使 uid 匹配,要么向组和/或其他人授予更多权限。读权限不足以让任何人进入目录,您还需要授予+x。