為什麼 NFS 不能辨識新的 UID?
我有兩台執行 RHEL6 的伺服器。我對兩者都有根訪問權限。主伺服器,我將稱之為
server
,是一個數據庫伺服器。應用程序伺服器(我將稱為)通過 NFSclient
從掛載目錄。server
appuser
在 和上都有一個使用者client
,server
。但是,appuser
的 UIDclient
是502
.appuser
的 UIDserver
為506
.兩個使用者都需要 NFS 共享上的讀寫能力。為了方便起見,我製作了
appuser
on擁有的份額server
。
id appuser
在每個產量上執行:uid=506(appuser)
.當然,
client
不承認所有權,因為appuser
在 上具有不同的 idclient
。所以我做了以下事情:
- 將 /etc/passwd 中使用者的 UID 更改
client
為 506。appuser
將’s $HOME 的所有權更改client
為appuser
再次,以便我可以登錄。現在,當我從
client
側面查看 NFS 共享時,我看到它由502
.502
是appuser
客戶端的舊 ID。我無法從 更改 NFS 共享的所有權client
,因為那是物理上駐留在 上的捲server
。我需要確保 NFS 共享顯示
appuser
來自server
和的所有權client
。
appuser
自從更改客戶端的 ID 後,我錯過了哪一步?注意:我沒有重新啟動
client
(或其他任何東西。)
好的!我明白了。多次嘗試後在Bing上找到它。仍然不確定究竟哪個問題解決了問題,有兩種可能性。但他們在這裡。
網際網路上有“告訴”NFS v4 可能存在客戶端所有權權限問題。我不知道這是不是真的,我不在乎。有人有他們稱之為解決方案的東西。所以我按照說明強制客戶端將驅動器掛載為 NFS 版本 3。所以我做的第一件事就是在 /etc/fstab 中更改我的掛載行權限:
rw,hard,intr
對此:
rw,hard,intr,vers=3
另外,我在客戶端上啟動了 nfs 守護程序,只是因為有人說要這樣做:
service nfs start
然後,因為我遵循了一些過時的說明,所以我檢查了
portmap
服務是否在客戶端上執行:service portmap status
並受到歡迎:
portmap: unrecognized service
然後我發現
portmap
現在捲成rpcbind
. 所以:service rpcbind status
我看到了:
rpcbind dead but pid file exists
然後:
[root@myserver customers]# service rpcbind restart Stopping rpcbind: [FAILED] Starting rpcbind: [ OK ]
然後我檢查了 NFS 共享的所有權,它是正確的!
id appuser
可能會告訴您 shell 仍然可以看到使用者的舊 UID。註銷並重新登錄。