需要关于 `showmount -e` 的解释——“@”是什么意思?

Explanation regarding `showmount -e` needed - what does "@" mean?

如题所述:下面输出中的@...是什么意思?我不认为它们是主机名,因为我认为 @ 符号是为邮寄保留的。通常有一个 IP 子网或只是一个 IP 地址 - 但这里没有任何情况。我也知道我可以把主机名放在那里,但我不认为我可以把这样的 @... 放到主机文件中以限制对某些 IP 的访问...Sooo,这是什么?

glaforge@enterprise: showmount -e [REMOVED]
Export list for [REMOVED]:
[REMOVED]   *
[REMOVED]   @somenamea,@somenameb

showmount -e 显示的导出列表中,任何带有 @ 的名称都是网络组,而不是单个主机。

网络组是主机列表。它们通常在 NFS 服务器上的 /etc/netgroup 中定义(但也可能在 NIS、LDAP 等中,具体取决于 /etc/nsswitch.conf 的配置方式)。

与分别导出到每个主机相比,使用网络组定义导出可以节省大量输入。 (我发现它减少了打字错误的机会。或者,如果我确实在我的一个导出中打字错误,我会更快地发现它,因为它会影响网络组中的所有机器,而不仅仅是一台机器。)

例子

在我的 NFS 服务器上,我可以在 /net/netgroup 中定义以下网络组:

nuts    (walnut,,) (almond,,) (pistachio,,) (hazelnut,,)
flowers (rose,,) (tulip,,) (iris,,)

netgroup 中的每个条目都定义为 (hostname, user, NIS domain) 的元组,但 NFS 只关心主机名,因此将其他部分留空。 NIS 域与 DNS 域不同。如果您需要指定完整的 DNS 名称,例如 foo.example.com,请将其全部放在主机部分:(foo.example.com,,)

然后我的 exports 文件可能如下所示:

/vol/home    @nuts(rw) @flowers(rw)
/vol/web     @nuts(rw)
/vol/dns     @nuts(ro) almond(rw)

现在 flowers 网络组中的主机可以挂载 home read-write 但无法访问 webdns。主机 almond 对所有内容具有 read-write 访问权限,但 nuts 网络组中的其余计算机仅对 dns.[=29= 具有 read-only 访问权限]

如果我要 运行 showmount -e 它看起来像这样:

% showmount -e
Export list for example.com:
/vol/home @nuts,@flowers
/vol/web  @nuts
/vol/dns  @nuts,almond