对于一些临时的数据迁移任务,我需要设置一个 NFS 服务器。两台机器上的 UID 不匹配,所以我需要以某种方式避免权限问题。
幸运的是,我想,有一个all_squash
选择。它说:
all_squash:将所有 uid 和 gid 映射到匿名用户。对于 NFS 导出的公共 FTP 目录、新闻假脱机目录等很有用。相反的选项是 no_all_squash,这是默认设置。
为了映射到我想要的用户和组,我还指定了anonuid=12345
和anongid=15101982
:
anonuid 和 anongid:这些选项明确设置匿名帐户的 uid 和 gid。此选项主要用于 PC/NFS 客户端,您可能希望所有请求都来自一个用户。例如,考虑下面示例部分中 /home/joe 的导出条目,它将所有请求映射到 uid 150(应该是用户 joe 的请求)。
在连接到 NFS 共享的客户端上创建一个文件,正如预期的那样,我看到以下行为(uid/gid 已更改为12345
):
$ touch test && ls -l test
-rw-rw-r-- 1 12345 12345 0 Aug 25 18:10 test
Run Code Online (Sandbox Code Playgroud)
但是,共享上已存在的文件仍具有其原始 uid 和 gid:
$ ls -l existing-file
-rw-rw-r-- 1 98765 98765 0 Aug 25 18:11 existing-file …
Run Code Online (Sandbox Code Playgroud)