
首先,如果我的問題格式不正確,請原諒我,這是我關於 serverfault 的第一篇文章:)
我已經在 Linux/Windows/Solaris 混合網路中成功部署了 LDAP 和 Kerberos 驗證。我有 CentOS 7 伺服器,提供帶有 krb5 安全性的 NFS4(沒有隱私/完整性,只有身份驗證)。我可以在 CentOS 6 上成功掛載共享。
掛載輸出:
/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 上,我在其中有 3 個 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 用戶端無法處理大寫形式的它們(如 RFC 中所指定)。
所以我的問題是,是否有其他人嘗試過類似的部署,並且他們是否得到了相同的結果。如果使用 Solaris 10 NFSv4 用戶端的人能夠檢查 ACL 中的主體,那就太好了。事實上,在這一點上,任何建議都是很好的。
先致謝!