我按照以下教程使用 kerberos 配置 nfsv4https://help.ubuntu.com/community/NFSv4Howto (不同之处在于 NFS 服务器由 zfsonlinux 管理)。Kerberos 仅用于保护 NFS 安装(以防止用户将自己的笔记本电脑插入以太网并使用 rw 安装 nfs),用户/组/身份验证由 OpenLDAP 管理。
我导出了 sec=krb5 的一个共享,然后将其挂载到另一台机器上。所有用户都应该有权访问文件(所有权和权限映射与非 kerberos NFS/LDAP 相同)。问题是,当列出除 root 之外的用户的挂载时:
$ ls /mnt/nfs/
ls: cannot open directory '/mnt/nfs/': Stale file handle
即使所有用户都被允许读取该文件夹:
$ ll /mnt/
total 25
drwxr-xr-x 3 root root 4096 Jul 22 16:05 ./
drwxr-xr-x 24 root root 4096 Jul 25 06:12 ../
drwxrwxr-x 9 root sudo 9 May 20 14:27 nfs/
并且 root 可以读取它,所有文件都在这里,并且所有权已正确映射。
$ sudo ls -la /mnt/nfs/
total 56
drwxrwxr-x 9 root sudo 9 May 20 14:27 .
drwxr-xr-x 3 root root 4096 Jul 22 16:05 ..
...
...
任何想法?
谢谢。
答案1
如果您未通过 kerberos 进行身份验证,则通常会发生此错误。我使用“kinit”命令通过 kerberos 进行身份验证。重要的是,您要以要与之共享的用户身份执行此命令,而不是 root 用户。语法是:$ kinit some-kerberos-principal/some-kerberos-group 例如,如果您的 kerberos 主体名为 admin/admin,请输入以下命令:$ kinit admin/admin 然后重试。