NFS uid 映射 - 重新启动

Posted

技术标签:

【中文标题】NFS uid 映射 - 重新启动【英文标题】:NFS uid mapping - reboot 【发布时间】:2014-01-20 10:10:43 【问题描述】:

我(和大家一样))))尝试在客户端挂载 NFS 文件夹,同时在 CentOS 6.5 上保留 UID。

所以我有用户 test 与服务器上的 uid 10000 (useradd -u 10000 -g 9999 test),有属于他的文件。我使用 no_all_squash 选项导出文件夹。

之后,我在客户端上创建用户 test,uid 为 10000,挂载 NFS 文件夹,但 ls -ln 显示文件所有者 99(无人)直到客户端重新启动。 重新启动后一切正常,客户端会看到 uid 为 10000 的文件。客户端内核似乎不会更新用户列表/缓存。 用户删除的相同行为 - 直到重新启动它才会显示正确的 UID(尽管用户已经删除),重新启动后 - 99。

因为有问题的情况不是普通用户,而是创建/删除动态重启的系统绝不是选项。任何想法 - 一些配置重新加载等?

实际上最好在服务器上看到真实的 UID,尽管客户端上存在用户。

谢谢。

【问题讨论】:

【参考方案1】:

可以通过清理客户端机器上的uid映射缓存来解决:

/usr/sbin/nfsidmap -c

您可以在 /proc 中看到无效条目:

cat /proc/keys | grep 3$

有关底层技术的更多信息:

https://www.kernel.org/doc/Documentation/security/keys.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/idmapper.txt

serverfault也提到过

【讨论】:

不幸的是它没有帮助。实际上根据 man “NFS idmapper 使用 nfsidmap 将用户和组 id 转换为名称”,但我的问题不是名称本身,而是数字 UID。 使用 wireshark (tcpdump) 查看网络上实际发生的情况。我的服务器正在发送用户名,而客户端正在翻译它们。

以上是关于NFS uid 映射 - 重新启动的主要内容,如果未能解决你的问题,请参考以下文章

nfs

手动搭建一个nfs服务器

linux挂载iSCSI失败,求帮助

NFS(network file system)

NFS(network file system)

使用 New-SmbGlobalMapping 为 docker 容器创建的 SMB 共享映射在 Windows Server 1803 上重新启动后未恢复