我有一个 NFS 存储,我想从本地计算机创建和修改文件。在该 NFS 服务器上,有一个用户和一个组。但是,当我从某个本地应用程序将文件写入该存储时,该文件有属于不同组的不同用户。我如何强制我的本地应用程序假装是来自 NFS 计算机的用户?
当我想修改现有文件时,这也会造成麻烦 - 我没有写权限......
答案1
NFS 服务器根据用户的 uid 和 gid 映射用户,而不是根据用户的名称。因此,如果用户在客户端和服务器端具有相同的名称,但 uid 不同,则最终会遇到此类问题。存在完全重新定义映射的解决方案,但似乎并不容易(我帮不上忙)。但是,在单个用户的上下文中有一个简单的解决方案:map全部将客户端用户导出到服务器端的单个用户。这是通过all_squash
导出选项以及和anonuid=
指定anongid=
服务器端的目标用户来实现的。
答案2
您必须在服务器端强制执行。在导出文件中,您必须在目录导出选项中指定 anonuid=xxxx,anongid=xxxx。将 xxxx 替换为服务器用户 ID (anonuid) 和服务器组 ID (anongid)
奥马尔