首页/系统与基础设施/存储速查/跨平台权限映射与 UID GID 对齐
NAS 与文件共享50 条

跨平台权限映射与 UID GID 对齐

Windows 用 SID 标识账号,Linux 用 UID/GID 数字,跨平台共享必然要做映射。映射规则一旦变更或漂移,磁盘上已有文件的属主就会指向错误账号,权限随之全面错乱。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​‌‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌‌​‌​​‌​‌‌​‌​‌‌​‌​​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​​​​​‌‌‌​​​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

映射层在做什么

域账号在 Windows 世界里由 SID 唯一标识,Linux 文件系统只记录数字 UID/GID。跨平台共享时必须有组件负责翻译:Samba 侧由 winbind 按配置的后端把 SID 换算成 UID/GID,Linux 与域集成环境常用 SSSD 承担同样职责,Kerberos 化的 NFS 则依赖 idmap 服务。映射是双向且必须稳定:同一个域账号在任何时候都应换算出同一个数字,否则文件的属主归属会随时间变化。

基本信息

适用平台Linux 与 Windows 域集成的文件服务
Samba 侧idmap config 与 winbind 后端
常见后端tdb、rid、ad、autorid
验证命令wbinfo -n 名称、wbinfo -s SID、getent passwd 域用户
关键约束映射范围不能与本地账号 UID 冲突,且应长期固定

映射后端对比

后端映射方式适用与风险
tdb按需分配并记录在本地数据库无法跨主机保持一致,多机共享易错乱
rid由 RID 推导,算法确定多主机一致,需规划 UID 范围
ad读取目录中记录的数字并采用需要目录侧维护对应属性
autorid按域自动分配范围部署简单,变更范围时需谨慎

检查映射结果

检查映射结果
wbinfo -n 'EXAMPLE\svc'          # 名称换 SID
wbinfo -s S-1-5-21-...-1105       # SID 换回名称,验证一致性
getent passwd 'EXAMPLE\svc'       # 查看系统侧解析到的 UID
id 'EXAMPLE\svc'                  # 查看该账号的完整身份信息
ls -ln /srv/data | head -n 10     # 看磁盘上实际记录的属主数字

典型使用场景

  • 多台 Linux 文件服务器挂载同一份后端存储,要求同一域账号在每台机器上都是同一个 UID
  • 域账号与本地账号并存,需要避免 UID 数字撞车导致越权访问
  • 从旧映射方案迁移到新方案,需要评估已有文件属主的变化范围
  • NFS 与 SMB 同时对外提供,两侧身份解析必须给出相同结果
映射规则、后端类型或 UID 范围的变更会让同一账号换算出不同数字,而磁盘上已有文件的属主数字不会跟着变。结果是权限全面错乱,甚至出现 A 的目录被判给 B 的情况。任何改动前都必须评估存量文件,必要时连同 ACL 一并重新固化。
判断映射是否漂移的简单办法:在每台文件服务器上对同一个域账号执行同样的解析命令,比对得到的 UID 是否一致;再随机抽取几个存量文件查看属主数字是否仍能解析成预期账号。一致性核对应纳入日常巡检,而不是等用户报障。

易错点

  • 用按需分配类后端且多台服务器各自维护:同一账号在不同机器上得到不同 UID,跨机共享权限错乱
  • UID 映射范围与本地账号重叠:域用户可能直接获得本地账号的文件访问权
  • 变更映射方案而未评估存量文件:改动后大量文件属主解析错误,权限失效
  • 只看名称解析正确就认为映射一致:还需核对磁盘上实际记录的属主数字
  • NFS 与 SMB 两侧使用不同映射来源:同一用户在两种协议下身份不同,权限表现不一致

数据来源与参考

  • RFC 7530《NFS Version 4 Protocol》用户标识章节
  • Linux idmapd.conf(5) 与 nfsidmap(5) 手册页
  • Samba 官方文档《idmap 与 winbind 身份映射》

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/cross-platform-id-mapping.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​‌‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌‌​‌​​‌​‌‌​‌​‌‌​‌​​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​​​​​‌‌‌​​​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​