我有一个本地 Ubuntu 开发网络服务器和一个 Mac 客户端,我用它来访问和编辑文件。
我正在尝试在我的 Ubuntu 服务器上设置 NFS,以便我可以从我的 OS X 客户端访问虚拟服务器目录。
我在获取权限方面遇到问题,以便我的 Mac 用户可以写入虚拟服务器的 public_html 目录。
我读了一些资料,似乎必须将服务器上文件的 GUI 和 UID 与 Mac 上登录用户的 GUI 和 UID 相匹配才能进行读取/写入。这有点道理,这意味着 Unix 服务器认为我是与原始所有者相同的用户。
为了使其正常工作,我认为每个虚拟服务器都需要具有相同的所有者和/或相同的组,否则我想每次我想要编辑新网站时都必须在我的 Mac 客户端上设置一个新用户。
我当时的想法是,我可以将所有的虚拟服务器分配给同一个所有者和组。然后我要做的就是确保用户的 UID 和 GID 与我的 Mac 用户的 UID 和 GID 相匹配。
说实话,我从未真正理解过 unix 权限,所以可能完全搞错了。但我确实需要能够通过 Mac 客户端上的 NFS 读取/写入所有虚拟服务器。
任何帮助将不胜感激。
答案1
您可以在导出条目中使用选项all_squash
,anonuid
和。将把导出目录中的所有请求重定向到匿名用户,另外两个选项映射本地计算机上的那些用户。示例(来自导出手册页):anongid
all_squash
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/home/joe 上的所有请求都将作为 uid 150 和 gid 100 执行。因此,在每台服务器上,使用服务器中本地用户的 uid 和 gid 导出主目录(或仅 public_html)目录,来自 mac 客户端的请求将以正确的权限结束。