nfs掛載後權限映射錯誤的解決辦法

nfs掛載後權限映射錯誤的解決辦法

現象

        在server端和client端都建立相同的用戶和組,檢查uid和gid全部相同.例如usera其uid=501,usera其gid=501.大部分客戶端掛載後權限正確,但是個別客戶端的用戶權限卻被映射成了nobody.

具體如下:

錯誤的權限

[root@centos6 f1]# ls -l test/
總用量 4
drwxr-xr-x. 2 nobody nobody 4096  2月 21 16:19 test
-rw-r--r--. 1 nobody nobody    0  2月 27 2012 test2
-rw-r--r--. 1 nobody nobody    0  2月 21 16:20 test.log
正確的權限
[root@centos6 f1]# ls -l test/
總用量 4
drwxr-xr-x. 2 usera usera 4096  2月 21 16:19 test
-rw-r--r--. 1 usera usera    0  2月 27 2012 test2
-rw-r--r--. 1 usera usera    0  2月 21 16:20 test.log


解決方法:

[root@centos6 etc]# vi /etc/idmapd.conf 
[Mapping]
Nobody-User = usera
Nobody-Group = usera
這樣修改後,mount的目錄只有讀權限,而沒有寫權限。想要徹底解決,只要客戶端和服務端各改一行就行了。

修改方法爲,取消/etc/idmapd.conf中如下行的註釋,改爲你所使用的根域名:

#Domain = local.domain.edu

都改爲

Domain = king.com

[root@centos6 etc]# service rpcidmapd restart

正在啓動 RPC idmapd:[確定]
正在啓動 RPC idmapd:[確定]


問題解決.

原因:rpcidmap默認使用nsswitch進行用戶和組的解析,而nis並沒有配置,導致解析失敗.用戶和組被映射到nobody用戶和組上.

日誌記錄如下:

[root@centos6 ~]# rpc.idmapd -vvvv -f
rpc.idmapd: libnfsidmap: using domain: li.rq
rpc.idmapd: libnfsidmap: Realms list: 'LI.RQ' 
rpc.idmapd: libnfsidmap: processing 'Method' list
rpc.idmapd: libnfsidmap: loaded plugin /usr/lib/libnfsidmap/nsswitch.so for method nsswitch
rpc.idmapd: Expiration time is 600 seconds.
rpc.idmapd: nfsdopenone: Opening /proc/net/rpc/nfs4.nametoid/channel failed: errno 2 (No such file or directory)
rpc.idmapd: New client: c
rpc.idmapd: Opened /var/lib/nfs/rpc_pipefs//nfs/clntc/idmap
rpc.idmapd: New client: d
rpc.idmapd: nfs4_name_to_uid: calling nsswitch->name_to_uid
rpc.idmapd: nss_getpwnam: name 'root@localdomain' domain 'li.rq': resulting localname '(null)'
rpc.idmapd: nss_getpwnam: name 'root@localdomain' does not map into domain 'li.rq'
rpc.idmapd: nfs4_name_to_uid: nsswitch->name_to_uid returned -22
rpc.idmapd: nfs4_name_to_uid: final return value is -22
rpc.idmapd: Client c: (user) name "root@localdomain" -> id "99"
rpc.idmapd: New client: e
rpc.idmapd: nfscb: read(/var/lib/nfs/rpc_pipefs//nfs/clntc/idmap): No such file or directory
rpc.idmapd: nfs4_name_to_gid: calling nsswitch->name_to_gid
rpc.idmapd: nfs4_name_to_gid: nsswitch->name_to_gid returned -22
rpc.idmapd: nfs4_name_to_gid: final return value is -22
rpc.idmapd: Client c: (group) name "usera@localdomain" -> id "99"
rpc.idmapd: Stale client: d
rpc.idmapd:     -> closed /var/lib/nfs/rpc_pipefs//nfs/clntd/idmap


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章