我有以下环境:
host1:带有 zfs 2.1.11 的 Debian 12:使用默认软件包、nfs-utils 2.6 打开 ldap 服务器
host2:Debian 12:使用默认软件包打开 ldap 客户端,nfs-utils 2.6
在ldap服务器端我创建了两个组primarygroup1和primarygroup2,用户user1属于组primarygroup2
服务器端
getent group:
primarygroup1:*:1000001:
primarygroup2:*:1000002:
getent passwd:
user1:x:1000001:1000002:user1:/home/user1:/bin/false
服务器通过 NFS 提供具有权限的文件数据集
NFS 出口:
exportfs -v
/tank/d1 <world>(sync,wdelay,hide,fsid=9a31889cb81531154198e4c3c5156b74,sec=sys,rw,secure,no_root_squash,no_all_squash)
文件权限:
getfacl /tank/d1/file.txt
getfacl: Removing leading '/' from absolute path names
# file: tank/d1/file.txt
# owner: root
# group: primarygroup1
user::rwx
group::r--
other::---
客户端:
NFS 挂载
mount
192.168.164.200:/tank/d1 on /mnt/testnfs type nfs
(rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.164.200,mountvers=3,mountport =53721,mountproto=udp,local_lock=none,addr=192.168.164.200)
文件的权限
getfacl /mnt/testnfs/file.txt
getfacl: Removing leading '/' from absolute path names
# file: mnt/testnfs/file.txt
# owner: root
# group: primarygroup1
user::rwx
group::r--
other::---
getent group:
primarygroup1:*:1000001:
primarygroup2:*:1000002:
getent passwd:
user1:x:1000001:1000002:user1:/home/user1:/bin/false
问题在于,在客户端,user1 没有权限读取该文件,它不属于 primarygroup1,但它可以读取该文件。
user1@deb12nfsclient:/root$ cat /mnt/testnfs/file.txt
####### data ######
重新启动 NFS 服务器并重新挂载有时会有所帮助,但在大多数情况下不起作用。此外,我注意到大约 15 分钟后,这些权限可以自行正常工作,而无需重新启动 NFS 服务器
约 15 分钟后:
user1@deb12nfsclient:/root$ cat /mnt/testnfs/file.txt
cat: /mnt/testnfs/file.txt: Permission denied
在客户端,我使用了安装选项:noac,actimeo=0,但没有帮助。
有人知道为什么会这样吗? 有什么方法可以缩短此时间以使权限正常工作?
问候亚当