我试图连接到我的开发服务器上的NFS文件夹。 dev服务器上文件夹的所有者是darren和darren组。
当我使用磁盘工具导出并将其挂载到我的Mac上时,但是当我尝试打开文件夹时说我没有权限。 我已经设置了rw,sync和no_subtree_check。 Mac上的用户是一群人。
我是否需要设置相同的组和用户才能访问该文件夹?
NFSbuild立在RPCauthentication之上。 使用NFS版本3,最常见的authentication机制是AUTH_UNIX。 客户端系统的用户标识和组标识在每个RPC调用中发送,并且在服务器上检查这些标识在要访问的文件上的权限。 为此,UID和GID在服务器和客户端上必须相同。 但是,可以通过组合all_squash,anonuid和anongid导出选项,强制所有访问以单个用户和组的方式进行。 all_squash会将所有UID和GID映射到匿名用户, anonuid和anongid设置匿名用户的UID和GID。 例如,如果您的开发服务器上的UID和GID都是1001,那么可以使用类似的方式导出您的主目录
/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)
我不太熟悉NFS版本4,但我认为你可以在客户端上设置rpc.idmapd来改变它们发送给服务器的uid和gid。
当你挂载NFS时,你所使用的权限必须与你在服务器上的权限相匹配。 例如,如果您的用户只有只读访问权限,那么以读写方式进行安装会导致您在尝试实际加载安装时看到您在post中提到的相同错误。 不幸的是,这只会在访问文件夹时出现,而不是在实际上挂载时出现。
您还需要确保用户NFS正在服务器上运行,并且客户端上的用户正在使用相同的UID和GID。 您可以通过在服务器和客户端上运行id darren
来检查这些值。 如果UID和GID值不匹配,则可以编辑/ etc / passwd使其成为如此 – 但要确保在任意更改值之前了解自己正在做什么!
一些好的来源:
我希望这有帮助!
你的UID和GID在两台服务器上是否匹配? 这是它用来控制访问,而不是login名和组名。