手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

nfsmapid(1M)

名称

nfsmapid - NFS 用户和组 ID 映射守护进程

用法概要

/usr/lib/nfs/nfsmapid 

描述

nfsmapid 守护进程可来回映射 NFS 版本 4 客户机和服务器使用的 NFS 版本 4 ownerowner_group 标识属性以及本地 UID 和 GID 编号。

nfsmapid 使用 /etc/nsswitch.conf 文件中的 passwdgroup 条目指示其如何执行映射。

nfsmapid 守护进程没有客户可访问的外部接口。但您可以使用以下方法之一对 nfsmapid 进行管理配置:

  • 使用 sharectl(1M) 命令在 NFS 的 SMF 中指定 nfsmapid_domain 参数。

  • 指定 _nfsv4idmapdomain DNS 资源记录。

文件 /var/run/nfs4_domain 中包含当前选定的 NFSv4 域。

有关进一步的详细信息,请参阅在 Oracle Solaris 11.2 中管理网络文件系统

SMF 管理

nfsmapid 服务由服务管理工具 smf(5) 管理,其服务标识符为:

svc:/network/nfs/mapid

可以使用 svcadm(1M) 来对此服务执行管理操作(如启用、禁用或请求重新启动)。可以使用 svcs(1) 命令来查询服务的状态。

如果该服务处于禁用状态,可通过 mount_nfs(1M)share_nfs(1M)automountd(1M) 启用它,除非其 application/auto_enable 属性设置为 false

nfsmapid 会缓存用户的 UID 和 GID。如果用户随后使用下面所列的实用程序之一更改了 UID 或 GID,nfsmapid 高速缓存将过时。此时,获取或设置属性的任何 NFS 操作都会导致交换此过时信息。要解决此问题,请重新启动 nfsmapid,如下所示:

# svcadm restart svc:/network/nfs/mapid:default

可使用 sharectl(1M) 命令处理指定域名 (nfsmapid_domain) 的启动 SMF 参数。

nfsmapid_domain

NFS SMF 参数 nfsmapid_domain 的设置将覆盖 nfsmapid 分别用于构建和比较传出和传入属性字符串的域。此外,此设置还会覆盖用于设置 NFSv4 域的任何其他机制。如果缺少 nfsmapid_domain 设置,nfsmapid 守护进程将按以下方式确定 NFSv4 域:

  • 如果存在正确配置的 /etc/resolv.conf(请参见 resolv.conf(4)),nfsmapid 将为该域查询指定的名称服务器。

  • 如果存在正确配置的 /etc/resolv.conf(请参见 resolv.conf(4)),但查询到的名称服务器没有正确的域名记录,nfsmapid 将尝试通过 BIND 接口获取域名(请参见 resolver(3RESOLV))。

  • 如果不存在 /etc/resolv.confnfsmapid 将重新使用配置的域名(请参见 domainname(1M)),返回该域名时将删除首位上的域后缀。例如,对于 widgets.sales.acme.com,将返回 sales.acme.com

  • 如果不存在 /etc/resolv.conf,且未配置域名(或者不存在 /etc/defaultdomain),那么在主机名包含完全限定域名 (fully qualified domain name,FQDN) 的情况下,nfsmapid 将重新从主机名中获取域名。

如果按照前面所有的步骤仍然无法获取域名,nfsmapid 将不配置任何域。这会导致以下行为:

  • 传出 ownerowner_group 属性字符串以文本 ID 形式进行编码。例如,UID 12345 编码为 12345

  • nfsmapid 会忽略传入属性字符串的 domain 部分,并且只针对用户或组执行名称服务查找。如果用户/组在本地系统名称服务数据库中存在,则即使未配置任何域,也会映射正确的 UID/GID。

该行为意味着 NFSv4 客户机和服务器之间存在相同的管理用户/组域(也就是说,客户机和服务器上存在具有相同 UID/GID 的用户/组)。如果存在重叠的 ID 空间,传入属性字符串可能会映射到错误的 ID。这在功能上与将传入字符串映射到 nobody 没有什么不同,但可提供更大的灵活性。请参见下文的“示例”部分。

允许更改 UID 和 GID 的实用程序包括:

文件

/var/run/nfs4_domain

包含当前由 NFSv4 使用的域名。

示例

示例 1 设置域名

以下命令使用 sharectl 设置域名。

# sharectl set -p nfsmapid_domain=oracle.com nfs

下文的“附注”部分中介绍了 nfsmapid_domain 属性。

示例 2 获取域名

以下命令使用 sharectl 获取当前域名。

# sharectl get -p nfsmapid_domain nfs nfsmapid_domain=oracle.com

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/file-system/ntfsprogs

另请参见

svcs(1)automountd(1M)domainname(1M)groupdel(1M)groupmod(1M)mount_nfs(1M)svcadm(1M)share_nfs(1M)sharectl(1M)userdel(1M)usermod(1M)resolver(3RESOLV)nfs(4)resolv.conf(4)attributes(5)smf(5)

在 Oracle Solaris 11.2 中管理网络文件系统

附注

在未来的 Solaris 发行版中可能不存在 nfsmapid 守护进程。