Ubuntu

NFS 客戶端不忽略 NFS 映射上的 UID

  • October 13, 2015

我有六台機器、一台 NFS 伺服器和五個客戶端。三個客戶端(執行 Ubuntu 14.04)工作得很好。另外兩個,執行 12.04,遇到權限錯誤。

在映射的客戶端機器上,ls -l /home/返回:

drwxr-xr-x 22 testuser     testuser     12288 Oct  9 18:03 testuser

這是預期的權限設置。testuser是需要此文件夾權限的使用者。

但是,當我登錄testuser時,當touch /home/testuser/test.txt我收到此錯誤時:

touch: cannot touch `/home/testuser/test.txt': Permission denied

現在,數字 id 與 id 字元串不匹配,但有人告訴我不必如此。

客戶端設置:

cat /sys/module/nfs/parameters/nfs4_disable_idmapping
N 

上面的設置允許 NFS 使用字元串而不是數字 UID 和 GID 映射使用者權限。

cat /etc/idmapd.conf
[General]

Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

伺服器設置:

cat /etc/exports

/raid/nfs/home        server1(rw,sync,no_root_squash,no_subtree_check)
/raid/nfs/home        server2(rw,sync,no_root_squash,no_subtree_check)

是否需要採取錯誤或額外步驟才能使 12.04 機器正常工作?還是我應該硬著頭皮升級,還是只更改所有 UID 以匹配伺服器?

問題是只有當您執行 GETATTR/SETATTR (stat, chown, setacl) 或使用 kerberos(用於主體到 id 映射)時才涉及 idmapd。但是當 nfs 客戶端使用 auth=sys 發送 CREATE 請求時,則從 RPC 消息中獲取 uid 和 gid。所以你需要在伺服器和客戶端上匹配 uid 和 gid 來解決你的權限問題。

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