nfs4 id->用户客户端无法正常工作

情况是使用rpc.idmapd映射ID的nfs4服务器和客户端. id映射正在客户端上处理从服务器提供的现有文件.

在服务器上:

[root@server ~]# id user1
uid=500(user1) gid=502(user1) groups=502(user1)
[root@server ~]# ls -l /mnt/san/temp
total 0
-rw-r--r-- 1 user1 user1 0 Aug 27 11:46 test1
[root@server ~]# ls -ln /mnt/san/temp
total 0
-rw-r--r-- 1 500 502 0 Aug 27 11:46 test1

在客户端:

[user1@client ~]$id user1
uid=504(user1) gid=506(user1) groups=506(user1)
[user1@client ~]$ls -l /mnt/san/temp
total 0
-rw-r--r-- 1 user1 user1 0 Aug 27 11:46 test1
[user1@client ~]$ls -ln /mnt/san/temp
total 0
-rw-r--r-- 1 504 506 0 Aug 27 11:46 test1

所以没关系.

但是从客户端创建文件:

[user1@client ~]$touch /mnt/san/temp/test2
[user1@client ~]$ls -l /mnt/san/temp
total 0
-rw-r--r-- 1 user1 user1 0 Aug 27 11:46 test1
-rw-rw-r-- 1 user2 user2 0 Aug 27 11:49 test2
[user1@client ~]$ls -ln /mnt/san/temp
total 0
-rw-r--r-- 1 504 506 0 Aug 27 11:46 test1
-rw-rw-r-- 1 505 507 0 Aug 27 11:49 test2

此时似乎没有在客户端进行id->名称映射.

两个系统都是CentOS 5.x.顺便提一下文件/proc/net/rpc/nfs4.nametoid/content
和/proc/net/rpc/nfs4.idtoname/content在客户端上为空,但在服务器上有条目.

我开始登录客户端上的rpc.idmapd,而/ var / log / messages显示它正用于名称到id映射,例如:
8月27日11:49:27 fw01 rpc.idmapd [11773]:客户端23 :(用户)名称“user2 @ localdomain” – > id“505”
我期待相应的id->名称查找发生在客户端创建文件的位置.

同步id和使用nfsv3的简单解决方案实际上不是一个选项(因为不简单!).

编辑:

对困惑感到抱歉:

[user1@client ~]$getent passwd 504 505
user1:x:504:506::...
user2:x:505:507::...
[user1@client ~]$getent group 506 507
user1:x:506:
user2:x:507:

[root@server ~]# getent passwd 504 505
user2:x:504:506::...
[root@server ~]# getent group 506 507
user2:x:506:

即,似乎正在发生的是在客户端上创建文件,因为user1(uid 504 / gid 506)在服务器上创建之前没有被翻译.它在服务器上创建为504/506.这在服务器上是user2 / user2,所以在那之后它返回到客户端错误.

解决方法

我也有同样的问题,并花了一些时间研究答案.似乎rpc.idmapd不支持ID到名称映射,可以让您对文件系统进行更改.但是,我已经看到了如果使用Kerberos身份验证( http://permalink.gmane.org/gmane.linux.nfsv4/11363)挂载,这可能会有用.我自己还没有尝试过,因为Kerberos似乎有点痛苦.此时我将简单地同步UID以简化操作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format='{{.LogPath}}' <container_name> 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户