无法读取 NFS4 共享、Solaris 10 客户端、CentOS 7 服务器上的 ACL

无法读取 NFS4 共享、Solaris 10 客户端、CentOS 7 服务器上的 ACL

首先,如果我的问题不够清楚请见谅,这是我在 serverfault 上的第一篇帖子:)

我已成功在混合 Linux/Windows/Solaris 网络中部署 LDAP 和 Kerberos 身份验证。我有一台 CentOS 7 服务器,使用 krb5 安全性(无隐私/完整性,仅身份验证)提供 NFS4 服务。我可以在 CentOS 6 上成功挂载共享。但是,当我在 Solaris 10(Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC)上挂载共享时,我收到一些奇怪的 ACL 相关错误。

安装输出:

/mnt/exporthome on nfsserver.example.com:/export/home remote/read/write/setuid/devices/sec=krb5/xattr/dev=5ec0004

我确实有访问权限,我可以阅读这些文件:

$ ls /mnt/exporthome/testuser/
testfile1.txt textfile2.txt

但是,我无法读取权限/ACL,而是得到:

$ ls -la /mnt/exporthome/testuser/
ls: can't read ACL on /mnt/exporthome/testuser/: Permission denied

nfs4_domain 在客户端和用户上都正确设置,并且 ID 映射似乎对用户有效:

$ getfacl /mnt/exporthome/testuser/

# file: /mnt/exporthome/testuser/
# owner: testuser
# group: testgroup
user::rwx
group::---              #effective:---
mask:rwx
other:---

我可以看到

日志中出现以下消息:

/usr/lib/nfs/nfsmapid[349]: [ID 300081 daemon.error] valid_domain: Invalid inbound domain name .

我检查了生成该消息的代码,“入站域名”指的是远程(即服务器)nfs4 域。我嗅探了流量,发现服务器正确地将 fattr4_owner 发送为“[电子邮件保护]“。问题似乎出在 reco_attr: ACL 上,我在那里有三个 ACE。

ACE 中的“Who”字段是:“OWNER@”、“GROUP@”和“EVERYONE@”,所以我猜测它们导致了“无效的入站域名”错误消息。

OWNER@、GROUP@ 和 EVERYONE@(以及其他几个)在定义 NFSv4 ACL 的 RFC 中被指定为具有特殊含义,正如我之前提到的,访问 NFS 共享的其他主机对它们没有任何问题。

我搜索了 Oracle 的网站,并在他们的一些 NFSv4/ACL/ZFS 文章中将这些主体记录为“owner@”、“group@”和“everyone@”。

我无法访问 Solaris NFS 服务器,但我的猜测是它以小写形式发送带有这些主体的 ACE,而本机 Solaris 10 NFSv4 客户端无法处理大写的 ACE(如 RFC 中所述)。

所以我的问题是,是否有其他人尝试过类似的部署,他们是否得到了相同的结果。如果有人拥有可用的 Solaris 10 NFSv4 客户端并检查 ACL 中的主体,那就太好了。实际上,在这一点上,任何建议都很好。

提前致谢!

相关内容