一、NFS的相關概念
NFS(Network File System)即網絡文件系統的縮寫,由Sun公司研發,其目的是為了解決網絡文件共享的問題。用戶可以實現像掛載本地文件系統一樣掛載NFS服務器的共享目錄;其具有配置簡單、使用高效的特點,但只能在Linux系統使用,不能跨平臺使用。
NFS服務占用2049端口,但其對于不同的功能使用小于1024的隨機端口來傳輸數據,但如果是隨機端口客戶端如何知曉要訪問哪個端口呢?這就要借助于RPC協議了。
RPC(Remote Procedure Call)即遠程過程調用,其作用是向客戶端告知NFS的端口信息;NFS服務啟動時會主動向RPC注冊所使用的端口,而RPC使用111端口來響應客戶端的請求,所以客戶端可以借助于RPC來完成NFS的訪問。
二、NFS文件訪問權限
NFS服務本身沒有身份驗證的功能,權限是遵循共享目錄在NFS服務器上的權限設置,而且只識別UID和GID。假如現在有一個共享的目錄share其屬主、屬組及權限信息如下:
用戶和組為mysql,但當客戶端訪問此目錄時,NFS是判定訪問者的uid是否為400,如果uid相符,那么訪問者就有可能擁有與mysql用戶相同的權限,這還要取決于/share設置共享時所分配的權限;如果訪問者的uid對應了NFS服務器上的另一個用戶,則訪問者就對應擁有other權限,但是否能夠完全對應用other權限也要取決于\share的共享權限;如果訪問者的uid恰好在NFS服務器上不存在,則服務器用自動將其壓縮成為匿名用戶,其uid為65534,而CentOS將其顯示為nfsnobody。
由于在絕大部分Linux系統中root用戶的uid為0,也就是說客戶端可以輕易的獲得NFS的root權限來訪問共享目錄,這樣是極不安全的,所以NFS默認用將root的身份壓縮成匿名用戶。
三、NFS服務端的配置
1、安裝NFS服務
在安裝nfs-utils的同時會安裝rpcbind程序。
2、配置NFS服務
NFS服務使用/etc/exports配置文件進行設置,其語法格式如下:
/share:表示共享的文件系統;
192.168.2.0/24:允許連接共享文件系統的客戶端;
(rw):客戶端對于共享文件系統所擁有的權限;
*.test.com(ro):表示test.com為后綴的主機都可以對/share目錄有只讀的權限;
客戶端的設置方式:
(1)IP地址,如192.168.2.10;
(2)網絡地址,如192.168.2.0/24,或192.168.2.0/255.255.255.0;
(3)主機名,如client.test.com,也可以使用通配符,“*”或“?”。
常用權限參數:
rw:可讀可寫;
ro:只讀;
root_squash:將root用戶壓縮成為匿名用戶(默認選項);
no_root_squash:訪問共享目錄時保持root用戶身份;
all_squash:將所有訪問NFS的用戶身份全部壓縮成為匿名用戶;
sync:將數據同步寫入到內存和硬盤中;
async:將數據暫存于內存中。
anonuid:指定匿名訪問用戶的UID;
anongid:指定匿名訪問用戶組的GID。
更多的參數可自行man exports來進行查閱。
四、啟動NFS服務
查看NFS開啟的端口信息:
NFS服務本身啟動在2049端口,rpcbind啟動在111端口。
可以使用rpcinfo命令來查看rpc的相關信息,其格式如下:
rpc [option] [IP|hostname]
option:
-p:顯示所有的port與program信息。
五、NFS的查看命令
下面來介紹兩個經常用到的查看命令。
(1)showmount命令
格式:showmount [option] [IP|hostname]
option:
-a:顯示當前主機與客戶端的NFS連接共享的狀態;
-e:顯示某臺主機的/etc/exports所共享的目錄信息。
(2)exportfs命令
格式:exportfs [option]
option:
-a:全部掛載(或卸載)/etc/exports文件中的設置;
-r:重新掛載/etc/exports中的設置;
-u:卸載某一目錄;
-v:將命令輸出顯示到屏幕。
六、NFS客戶端設置
(1)手動掛載NFS共享目錄
(2)開機自動掛載NFS共享目錄
1)/etc/fstab
_netdev:此選項表示在NFS服務器宕機時,也不會影響本地系統的啟動。
2)/etc/rc.d/rc.local
3)使用autofs
使用autofs可以實現按需掛載,當用戶訪問共享目錄時,目錄才會被自動掛載上,過一段時間沒有使用又會被自動卸載。
安裝autofs服務:
配置主配置文件/etc/auto.master:
定義/etc/auto.nfs文件,此文件中指時掛載信息即可:
注意本地的掛載目錄/auto/nfs不需要事先建立,autofs會自動建立。
啟動autofs服務:
驗證:直接切換到/auto/nfs目錄中;
原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/5603