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