Linux

Linux 到 Linux NFS UID 更改

  • March 29, 2017

我意識到以前有人問過這個問題,但不幸的是,我沒有足夠的經驗或足夠的時間繼續爬過為此彈出的大量搜尋結果頁面。這是配置需要很快啟動的新子系統的最後一步。我希望通過從回復中消除的過程,我可以弄清楚發生了什麼。

NFS 共享正在安裝在遠端機器上,但正在使用我尚未配置的 UID 進行設置。這是 linux 到 linux NFS,域上沒有任何內容,也沒有來自 windows/mac 共享的任何內容。

設置:

  • 來源:

    • Debian 7,源文件的所有者是 rdebXXX,UID 1011
    • /etc/出口:

    /home/rdebXXX/test dev-www(rw,sync,no_subtree_check,anonuid=512,anongid=1003)

    • exportfs -a已執行
    • 可以ping通目標伺服器
    • 沒有做主機名過濾,hosts.allow和hosts.deny為空
  • 目的地:

    • Debian 8,目標父目錄的所有者是signsXXX,UID 512。所以掛載需要擁有相同的所有者。
    • /etc/fstab:

    x.x.x.x:/home/rdebXXX/test /home/signs/test nfs defaults,bg 0 0

    • xxxx的源伺服器可以ping通
    • 安裝已安裝且沒有安裝錯誤
    • 掛載的 UID 為 1004,映射到目標伺服器上的 rdebXXX 帳戶。我很確定這是偶然的,因為盒子/帳戶是在不同時間手動創建的。
    • idmapd 正在執行,並且 idmap.conf 具有以下預設條目:

    Nobody-User = nobody Nobody-Group = nogroup

  • 筆記

    • 我無法更改目標框的 UID。有多個 NFS 掛載從多個來源進入某些新盒子,因此在這些情況下更改 UID 將無濟於事,因為 UID 更改只會修復 1 個掛載。
    • 我無法更改源框,因為如前所述,它們位於目前使用的系統中。

任何幫助將不勝感激。我已經嘗試了我所知道的並且在Google上花費了幾個小時,但是 NFS 可能非常挑剔,以至於要找出原因並不總是那麼容易。

如果我理解正確,那麼您希望將來自客戶端節點的所有請求映射到伺服器上的特定 UIG/GID。為此,您必須按以下方式調整導出文件:

/home/rdebXXX/test dev-www(rw,sync,no_subtree_check,anonuid=512,anongid=1003,all_squash)

all_squash選項告訴伺服器將所有請求映射到使用者nobody****以及您在導出選項中已有的相應UID 和GID。

引用自:https://serverfault.com/questions/840494