14.3. NFS 守护进程

如果您想为其他主机提供 NFS 服务,您必须在您的机器上运行 rpc.nfsdrpc.mountd 守护进程。作为基于 RPC 的程序,它们不由 inetd 管理,而是在启动时启动并在端口映射器上注册;因此,您必须确保仅在 rpc.portmap 运行之后启动它们。通常,您会在您的网络启动脚本之一中使用如下示例
if [ -x /usr/sbin/rpc.mountd ]; then
        /usr/sbin/rpc.mountd; echo -n " mountd"
fi
if [ -x /usr/sbin/rpc.nfsd ]; then
        /usr/sbin/rpc.nfsd; echo -n " nfsd"
fi

NFS 守护进程向其客户端提供的文件的所有权信息通常仅包含数字用户和组 ID。如果客户端和服务器将相同的用户名和组名与这些数字 ID 相关联,则称它们共享 uid/gid 空间。例如,当您使用 NIS 来分发passwd信息到您 LAN 上的所有主机时,就是这种情况。

然而,在某些情况下,不同主机上的 ID 不匹配。您可以不更新客户端的 uid 和 gid 以匹配服务器的 uid 和 gid,而是可以使用 rpc.ugidd 映射守护进程来解决这种差异。使用稍后解释的 map_daemon 选项,您可以告诉 rpc.nfsd 借助客户端上的 rpc.ugidd 将服务器的 uid/gid 空间映射到客户端的 uid/gid 空间。不幸的是,并非所有现代 Linux 发行版都提供 rpc.ugidd 守护进程,因此如果您需要它而您的发行版没有,您将需要从源代码编译它。

rpc.ugidd 是一个基于 RPC 的服务器,它像 rpc.nfsdrpc.mountd 一样从您的网络启动脚本启动

if [ -x /usr/sbin/rpc.ugidd ]; then
        /usr/sbin/rpc.ugidd; echo -n " ugidd"
fi