调查

调查

我的 NFS 服务器似乎忽略了次要组。每个用户的组数少于 16 个,但有--manage-gids。如果缺少此选项,则 NFS 共享不会挂载。用户和组使用 LDAP 进行管理,身份验证通过 Kerberos 完成。我的导出设置如下:

> cat /etc/exports
/srv/nfs4 *(rw,sync,fsid=root,crossmnt,no_subtree_check,sec=krb5i,insecure)
> grep /srv/nfs4 /etc/fstab
/home   /srv/nfs4/home  none    bind    0   0
/var/backups/home   /srv/nfs4/archive   none    bind    0   0
> hostname -f
nfs.example.com

NFS 挂载方式如下,在服务器本身和其他一些客户端计算机上均如此:

> grep nfs4 /etc/fstab
nfs.example.com:/ /mnt/nfs nfs rw,exec,nfsvers=4 0 0

UID 是正确的,因为 NFS 文件系统安装在服务器本身上。当我将其安装在另一台机器上时也会发生这种情况。

> id
uid=1027(kai) gid=1027(kai) groups=1027(kai),27(sudo),100(users)
> ls -n /mnt/nfs/home/kai/test
total 0
drwxr-xr-- 1 1001  100 0 Mar 27 11:44 test1/
drwxr-xr-x 1 1001  100 0 Mar 27 11:44 test2/
drwxr-xr-- 1 1001 1027 0 Mar 27 11:44 test3/

在本地目录(/home/kai/test/srv/nfs4/home/kai/test)中,我可以cd访问所有测试目录。在中/mnt/nfs/home/kai/test,我无法cd访问。我的结论是,辅助组的test1/组权限( )被忽略了 - 知道为什么会这样吗?r-xusers

调查

使用 wireshark 进行更多调查后,发现这似乎是主机端的问题。客户端正在发出LOOKUP调用,并获得了预期的响应(应该是这样的,因为 显示了正确的权限ls)。但是,它没有获得对调用的正确响应ACCESS- 客户端发送Check: Read/Lookup/Modify/Extend/Delete和接收Allowed: Read/Lookuptest2test3但仅限Allowed: Readtest1

相关内容