我可以强制 NFS 客户端将所有用户/组映射到共享文件上的“无人”吗?

我可以强制 NFS 客户端将所有用户/组映射到共享文件上的“无人”吗?

我刚刚成功设置了 NFS 客户端和服务器。NFS 愿意在客户端和服务器之间处理不变的 UID,这让我很惊讶。

例如,假设服务器上存在以下用户名/ID:

root 0
admin 1
alice 100

客户端上的内容如下:

root 0
bob 1
admin 2
alice 123

在当前情况下,如果admin服务器上在共享目录中创建一个文件,则客户端会将其视为所有bob这是一个明显的安全问题因为admin可能会错误地认为权限可以544保护文件免遭未经授权的写入。

此外,alice可能会产生错误的印象,认为她可以正确地与自己共享文件并保持文件权限的合理性。

问题是,如果客户在共享中创建一个新文件,服务器将其视为所有nobody这正是我想要的两方面的东西。也就是说,nobody即使文件admin是在服务器上创建的,客户端也应该将其视为自己的所有者——就我的情况而言,共享行为剥夺了有意义的所有权,因为机器之间没有用户 ID 对应关系。

简而言之,我希望所有 NFS 客户端都被告知谁nobody拥有所有共享文件,无论服务器是否知道。此外,来自客户端的所有写入都将归服务器所有nobody并在服务器上标记为拥有。

我可以实现这个吗?

答案1

为了实现这一点,您需要all_squash在导出文件中指定参数,同时还anonuid=xxx,anongid=xxx可以选择将文件分配给哪个用户。

force user甚至 Windows 用户也可以通过Samba 上的类似指令进行集成。

相关内容