关于 nfs 共享上的 krb5p 和 sys 的问题

关于 nfs 共享上的 krb5p 和 sys 的问题

我与 nfs 进行了一些共享,这是 /etc/exports 文件(我知道 no_root_squash 很危险,但只是临时的,用于测试)

/srv/nfs4              10.3.0.0/24(ro,no_subtree_check,fsid=0,sec=krb5p:sys) 192.168.0.0/24(ro,no_subtree_check,fsid=0,sec=krb5p:sys)
/srv/nfs4/kernels  10.3.0.0/24(rw,no_subtree_check,async,no_root_squash,nohide,sec=krb5p:sys) 192.168.0.0/24(rw,no_subtree_check,async,no_root_squash,nohide,sec=krb5p:sys)

如果我使用 sys 选项挂载目录,则 posix acl 受到尊重,如果我以 root 身份创建文件,则以 root 身份报告权限(这是我想要的)。

mount -vvv -o sec=sys myserver:/kernels /mnt/
mount.nfs: timeout set for Tue Dec 28 07:18:41 2021
mount.nfs: trying text-based options 'sec=sys,proto=tcp,retrans=2,retry=1,acl,ac,rsize=32768,wsize=32768,bsize=32768,port=2049,vers=4,addr=10.3.0.1,clientaddr=10.3.0.1'

cd /mnt
mkdir 44944
root@server:/mnt$ ls -lhd *
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 06.52 33/
drwxr-xr-x 2 root   root    4,0K 28 dic 07.10 449/
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 07.17 4494/
drwxr-xr-x 2 root   root    4,0K 28 dic 07.18 44944/

问题是,如果我使用 sec=krb5p 挂载目录,它会强制挂载为没人:nogroup(原文如此!),我尝试为该目录提供 777 权限,然后以 kerberized 用户身份输入(我首先执行 kinit)并创建dir..it 将权限报告为nobody:nogroup。

mount -vvv -o sec=krb5p myserver:/kernels  /mnt/
mount.nfs: timeout set for Tue Dec 28 07:21:45 2021
mount.nfs: trying text-based options 'sec=krb5p,proto=tcp,retrans=2,retry=1,acl,ac,rsize=32768,wsize=32768,bsize=32768,port=2049,vers=4,addr=10.3.0.1,clientaddr=10.3.0.1'

mkdir 449444
root@myserver:/mnt$ ls -lhd *
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 06.52 33/
drwxr-xr-x 2 root   root    4,0K 28 dic 07.10 449/
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 07.17 4494/
drwxr-xr-x 2 root   root    4,0K 28 dic 07.18 44944/
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 07.21 449444/

正如您所见,该目录被创建为nobody nogroup(使用 chmod 777 否则给出正确的权限被拒绝)

我需要检查什么?服务器和客户端都是Debian 11

答案1

找到解决方案。我位于一台多网络服务器上,该服务器通过一个接口连接到一个网络,另一个接口连接到另一个网络。在每个网络使用两个“不同”主机名之前(网络 A 将我的服务器解析为 virt.domain.example,网络 B 将服务器解析为 router.domain.example),我已经完成了此更改,使用相同的主机名(但不同)当然是每个网络的域),现在在守护程序重新启动后可以完美运行。

相关内容