NFS 客户端不会忽略 NFS 映射上的 UID

NFS 客户端不会忽略 NFS 映射上的 UID

我有六台机器,一台 NFS 服务器和五台客户端。三台客户端(运行 Ubuntu 14.04)运行正常。另外两台运行 12.04,遇到权限错误。

在映射的客户端计算机上,ls -l /home/返回:

drwxr-xr-x 22 testuser     testuser     12288 Oct  9 18:03 testuser

这是预期的权限设置。testuser是需要此文件夹权限的用户。

但是,当我登录时testuser,我touch /home/testuser/test.txt收到此错误:

touch: cannot touch `/home/testuser/test.txt': Permission denied

现在,数字 ID 与 ID 字符串不匹配,但是有人告诉我,情况没必要如此。

客户端设置:

cat /sys/module/nfs/parameters/nfs4_disable_idmapping
N 

上述设置允许 NFS 使用字符串而不是数字 UID 和 GID 来映射用户权限。

cat /etc/idmapd.conf
[General]

Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

服务器设置:

cat /etc/exports

/raid/nfs/home        server1(rw,sync,no_root_squash,no_subtree_check)
/raid/nfs/home        server2(rw,sync,no_root_squash,no_subtree_check)

是否有错误或我需要采取额外步骤才能使 12.04 机器正常工作?或者我应该咬紧牙关进行升级,或者只是更改所有 UID 以匹配服务器?

答案1

问题是,只有当您执行 GETATTR/SETATTR(stat、chown、setacl)或使用 kerberos(用于主体到 id 映射)时,才会涉及 idmapd。但是,当 nfs 客户端发送带有 auth=sys 的 CREATE 请求时,uid 和 gid 将从 RPC 消息中获取。因此,您需要在服务器和客户端上匹配 uid 和 gid 来解决您的权限问题。

相关内容