我有一個 NFS4 匯出(來自 FreeBSD ZFS 檔案系統),並且 root_squash 已關閉(-maproot=root)。
直到最近,我在幾台機器(主要是 Ubuntu 12.04 伺服器)上安裝這個驅動器都沒有出現問題,但突然我遇到了這個奇怪的問題:
在我嘗試設定的三個作業系統(Mint 15、Ubuntu 13.04、Ubuntu 12.04 用戶端)上,我進行了 ldap 和 nfs 配置並安裝了驅動器,一切看起來都很好。我可以看到從 ids 映射的適當的使用者名稱和群組名稱。但是,如果我嘗試將這些文件中的任何一個更改為任何其他用戶,它總是將它們設為無人:無人。
請注意,舊機器上不會發生這種情況。我甚至將準確的配置(/etc/idmapd.conf、/etc/ldap*、/etc/pam.d/*)從舊的 Ubuntu 12.04 機器複製到新機器上,但它仍然無法工作!它似乎也主要限於 chown。我可以像任何用戶一樣觸摸新文件,並且它們具有正確的所有權。我不知道發生了什麼事。
我可能得到的唯一線索是損壞的機器在 syslog 中給出此錯誤(在 idmapd 中增加詳細程度之後):
Sep 10 16:58:48 cabernet rpc.idmapd[1009]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Sep 10 16:58:48 cabernet rpc.idmapd[1009]: nss_getpwnam: name '[email protected]' domain 'test.com': resulting localname '5000'
Sep 10 16:58:48 cabernet rpc.idmapd[1009]: nss_getpwnam: name '5000' not found in domain 'test.com'
雖然工作機器可以提供:
Sep 10 17:03:44 node-2 rpc.idmapd[2906]: nfs4_uid_to_name: calling nsswitch->uid_to_name
Sep 10 17:03:44 node-2 rpc.idmapd[2906]: nfs4_uid_to_name: nsswitch->uid_to_name returned 0
Sep 10 17:03:44 node-2 rpc.idmapd[2906]: nfs4_uid_to_name: final return value is 0
Sep 10 17:03:44 node-2 rpc.idmapd[2906]: Client 18: (user) id "5000" -> name "[email protected]"
因此,看起來由於某種原因,損壞的機器正在嘗試使用 id 作為使用者名稱。
有什麼建議嗎?
答案1
這是透過以下設定解決的http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=500778
/etc/idmapd.conf
[General]
Cache-Expiration = 10