如何使 nfsv4 ID 映射在 macOS Big Sur 客户端和 Ubuntu 20.04 服务器 2021 之间工作

如何使 nfsv4 ID 映射在 macOS Big Sur 客户端和 Ubuntu 20.04 服务器 2021 之间工作

如果没有 Open Directory 服务器,nfsv4 ID 映射可以在 macOS 和 Linux 之间工作吗?

  1. nfs 版本为 4,所有版本 1…3 均已禁用
  2. Kerberos 是 MIT
  3. 共享秒为 krb5p
  4. 领域是 REALM.COM,nfs 和 kdc 服务器以及 macOS 客户端具有域realm.com

苹果系统

/etc/nfs.conf:
nfs.client.default_nfs4domain=realm.com
主机名
mac.realm.com
/etc/主机:
1.2.3.4 server.realm.com

Linux:

cat /proc/fs/nfsd/版本
-2 -3 +4 +4.1 +4.2
猫 /sys/module/nfsd/parameters/nfs4_disable_idmapping
/etc/idmapd.conf:
[一般的]
详细程度 = 3
Pipefs 目录 = /run/rpc_pipefs
[测绘]
无人-用户=无人
无人组 = nogroup
主机名--fqdn
server.realm.com
/etc/主机:
127.0.1.1 server.realm.com 服务器

mac 有用户:组:

  • 词根:轮子
  • admuser:工作人员
  • 没有人:没有人

— Wheel 和 Staff 是通用的 BSD 组

Linux有user.group:

  • 根.root
  • admuser.admuser
  • 无人群组

在 macOS 上,admuser:staff 执行挂载命令:

mount -tnfs -overs=4,proto=tcp,port=2049,sec=krb5p server.realm.com:/files ~/files

当前状态

在当前的nfs客户端和服务器配置中,都是nobody.nogroup和nobody:nobody

tail --follow=name --retry /var/log/syslog | 尾部 --follow=name --retry /var/log/syslog | egrep '^.{16}[^]* rpc.idmapd[[]'
2 月 16 日 10:17:11 服务器 rpc.idmapd[3981346]: nfsdcb: authbuf=gss/krb5p authtype=user
2 月 16 日 10:17:11 服务器 rpc.idmapd[3981346]:服务器:(用户)id“0”-> 名称“root@localdomain”
2 月 16 日 10:17:11 服务器 rpc.idmapd[3981346]: nfsdcb: authbuf=gss/krb5p authtype=group
2 月 16 日 10:17:11 服务器 rpc.idmapd[3981346]:服务器:(组)id“0”-> 名称“root@localdomain”
2 月 16 日 10:17:19 服务器 rpc.idmapd[3981346]: nfsdcb: authbuf=gss/krb5p authtype=user
2 月 16 日 10:17:19 服务器 rpc.idmapd[3981346]:服务器:(用户)id“65534”-> 名称“nobody@localdomain”
2 月 16 日 10:17:19 服务器 rpc.idmapd[3981346]: nfsdcb: authbuf=gss/krb5p authtype=group
2 月 16 日 10:17:19 服务器 rpc.idmapd[3981346]:服务器:(组)id“65534”-> 名称“nogroup@localdomain”

第一对是安装,第二对是访问

苹果系统:

nfs4mapid admuser
用户 admuser 映射到 id 501
        通过 GUID 126DA715-EAD2-48BB-9A40-653AED2D78CD 完成映射
nfs4mapid-u501
用户 ID 501 映射到[电子邮件受保护]
        通过 GUID 126DA715-EAD2-48BB-9A40-653AED2D78CD 完成映射
nfs4mapid -G 员工
组人员映射到 ID 20
        通过 guid ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014 完成映射
nfs4mapid-g20
组 ID 20 映射到[电子邮件受保护]
        通过 guid ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014 完成映射
nfs4mapid 根
用户 root 映射到 id 0
        通过 guid FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000 完成映射
nfs4mapid-u0
用户 ID 0 映射到[电子邮件受保护]
        通过 guid FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000 完成映射
nfs4mapid -G 轮
组轮映射到 id 0
        通过 guid ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000 完成映射
nfs4mapid-g0
组 ID 0 映射到[电子邮件受保护]
        通过 guid ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000 完成映射
  • Linux 最高版本是 4.2
  • macOS 最高版本为 4.0

所需的映射

在 macOS 客户端上执行 ls -l 时:

  • Linux 用户 root -> macOS 用户 root
  • Linux 组根 -> macOS 组 Wheel
  • Linux 用户 admuser -> macOS 用户 admuser
  • Linux 组 admuser -> macOS 组工作人员

从 macOS 在服务器上创建文件时

  • macOS 用户 root -> Linux 用户 root
  • macOS 组轮 -> Linux 组根
  • macOS 用户 admuser -> Linux 用户 admuser
  • macOS 小组人员 -> Linux 小组 admuser

如果没有 Open Directory 服务器,nfsv4 ID 映射可以在 macOS 和 Linux 之间工作吗?

如果需要开放目录,该怎么做?

相关内容