1、伺服器:
nfs
rpcbind 此為rhel6下的服務,如果是rhel5則是 portmap
2、用戶端:
rpcbind
3、假設伺服器10.10.10.254.用戶端10.10.10.10
在用戶端10上檢視伺服器254上是否存在nfs共享,需要具備條件:
(1)伺服器上開啟nfs服務
[root@rootbug ~]#/etc/init.d/nfs start
[root@rootbug ~]#/etc/init.d/rpcbind start
(2)用戶端
(3)在用戶端10上執行檢視指令
[root@rootbug ~]# showmount -e 10.10.10.254
執行之後将會全部列舉出伺服器254上的全部通過nfs共享出現的資訊,如果無法檢視請檢視伺服器上的防火牆是否關閉
4、portmap或者rpcbind端口為111端口
nfs端口為2049端口
5、伺服器上配置nfs共享,配置檔案
[root@rootbug ~]#vim /etc/exports
在此空檔案中添加需要共享的目錄,主要參數有
ro 隻讀
rw 可讀可寫
root_squash代表用戶端以nfsnobody使用者挂載,預設不寫就有
no_root_squash 代表用戶端以root使用者挂載
sync 同步
async 異步
通過man exports 得知各個參數的作用
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)home/joe pc001(rw,all_squash,anonuid=150,ano
/pub (ro,insecure,all_squash)
(1)例子:
/share/iso *(ro) --把/share/iso 共享給*(代表所有IP) ro (代表隻讀)
/share/iso *(rw) --rw代表可讀可寫
/share/iso 10.10.10.0/24(ro) --隻共享給10.10.10的網段的計算機通路
/share/iso 10.10.10.0/255.255.255.0(ro)
/share/iso 10.10.10.10/255.255.255.255(ro) --定義隻10.10.10.10這台計算機可以通路
/share/iso 10.10.10.10(ro)
/share/iso 10.10.10.10/32(ro)10.10.10.254/32(rw) --定義隻有10和254這兩台可以通路
6、nfs共享的權限
(1)用戶端挂載目錄的權限為服務端共享目錄的權限
(2)nfs服務共享目錄的預設權限規定是以nfsnobody這個使用者來挂載,檢視/etc/passwd可以看到
注意:如果做了服務的話,權限要由服務的權限+系統的權限合起來生效
也就是說,用戶端是否可以通路,需要防火牆允許,服務允許,系統權限允許,才可以通路
(3)詳情如下:
/share/iso *(ro) 預設等于 /share/iso*(ro,root_squash)
--root_squash代表用戶端以nfsnobody使用者挂載
/test *(rw,no_root_squash)
--表示用戶端會以root的身份來挂載服務端的/test目錄
/share/iso 10.10.10.10/32(ro,no_root_squash)10.10.10.254/32(ro,root_squash)
--no_root_squash代表用戶端以root使用者挂載,就算是10對/share/iso有w權限,也不能寫,因為ro參數确定隻讀
/share/iso10.10.10.10/32(rw,anonuid=533,anongid=534) --指定用戶端以uid=533,gid=534挂載,但不要指定一個伺服器上面不存在的uid或gid,否則用戶端會以無頭使用者或組來通路
--修改了/etc/exports以後,要重新開機服務使之生效,不用重新開機服務,使修改過的配置檔案生效
[root@rootbug~]#exportfs -arv --重新讀取/etc/exports檔案裡的共享,并導入
-auv --解除安裝/etc/exports檔案裡的共享,别人showmount -e看不到,也挂載不了
本文轉自 天樂 51CTO部落格,原文連結:http://blog.51cto.com/tianlegg/1603432,如需轉載請自行聯系原作者