NFS 用户映射

NFS 用户映射

我有两台机器,都安装了 CentOS 6.4,连接在同一个专用网络上。

其中一个用作 NFS 服务器,另一个用作客户端。

在服务器机器上,我/net/directory通过将以下行添加到文件来/etc/exports导出目录

/net/directory *(rw,sync,no_root_squash)

服务启动后,我进入客户端,将挂载点添加到/etc/fstab

server:/net/directory   /client/directory       nfs defaults    0 0

然后安装

# mount /client/directory

问题是,当我从客户端在挂载点内创建新文件/目录时,该文件将被映射,就像nobody:nobody作为服务器端的未知用户创建时一样。

这是一个例子(为了澄清)

在客户端只有一个同名的用户和组,称为testuser

  • 用户名:testuser
  • 唯一识别号:1001
  • 群组识别码:1001

在客户端我创建一个文件作为testuser

[testuser@client ~]# touch /client/directory/test

然后我列出目录内容

[testuser@client ~]# ls -l /client/directory
total 0
-rw-r--r--. 1 nobody nobody 0 Jul  2 16:46 test

但在服务器端一切都如预期的那样:

[root@earth ~]# ls -l /net/directory
total 0
-rw-r--r--. 1 1001 1001 0 Jul  2 16:46 test

我希望在客户端获得相同的结果:

- 文件的 UID:GID 必须为 1001:1001

我做错了什么?这是服务器问题还是客户端问题?

我查阅了几本 NFS 手册,但都没有什么帮助。

有谁知道我该怎么做(无需在服务器端创建用户)?

谢谢。

答案1

检查客户端和服务器上的 /etc/idmapd.conf 中的域是否相同。检查客户端和服务器上的 rpc.idmapd 是否正在运行。当然,用户应该存在于客户端和服务器上。NFSv4 在线上使用用户主体,客户端和服务器有责任提供适当的映射。当您使用 AUTH_SYS 时,本地 uid/gid 会在创建时传播到服务器,但“ls”需要映射才能工作。

相关内容