NFS 用戶端不會忽略 NFS 對映上的 UID

NFS 用戶端不會忽略 NFS 對映上的 UID

我有六台機器、一台 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 以匹配伺服器?

答案1

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

相關內容