OpenIndiana 和 Linux 之間的 NFS4 使用者名映射
我在 OpenIndiana 伺服器上有一個 NFS4 共享,我正在嘗試使用 Ubuntu Linux 機器正確訪問它。
在伺服器上擁有共享文件的使用者名是“nick”,它的 UID 在伺服器上是 104。在伺服器上擁有文件的組是“nick”,它在伺服器上的 GID 是 100。
Linux 機器上存在相同的使用者名/組,但 UID 為 112,GID 為 112。
這是我到目前為止所做的:
在 Linux 的 /etc/fstab 中創建條目以掛載共享。這工作正常,但是當我在 Linux 機器上執行“ls -l”時,使用者/組被設置為沒人。
我在 Linux 機器上編輯了 /etc/default/nfs-common 並設置了“NEED_IDMAPD=yes”。我還在 Linux 機器上編輯了 /etc/idmapd.conf 並設置了“Domain = lan”,這是在 OpenIndiana 機器上設置的。我重新啟動,現在:
當我在 Linux 機器上執行“ls -l”共享時,文件顯示為使用者“nick”和組“nick”擁有。偉大的!我以為我有。但是當我“su nick”並執行“touch asdf”時,該文件是使用錯誤的使用者名/組創建的。當我在 OpenIndiana 機器上查看新創建的文件時,它顯示使用者名為 112,組為 112,因為該文件是使用該 UID/GID 創建的,但它不會映射到 OpenIndiana 上的任何使用者名/組邊。
所以基本上我已經完成了一半。我可以使用正確的映射查看文件,因此 idmapd 至少在某種程度上可以工作,但映射沒有以另一種方式正確轉換。我錯過了什麼?
我發現這個連結描述了這個確切的問題。作者得出的結論是,這個問題是不可避免的,主要是由於 NFS4 的設計缺陷。我希望有人有一些關於修復的資訊。
真的很不可思議,但是 idmapd 真的不會那樣做!我花了 2 天時間才在網上找到它(即 gmane 上的這個,或者你在 dfusion 上的連結),又花了 2 天時間才相信有人會製造出如此令人驚訝的混亂局面。
不,談論 uid 映射,讓 ls -l 列印出映射的 uid,但在訪問這些文件時讓它失敗…… jeee,tststs,headbang,沒門!