利用yum安裝NFS服務器
yum install nfs-utils rpcbind -y
配置NFS服務器
nfs服務器配置相當簡單,只需在NFS的主配置文件/etc/exports中進行設置,然後啓動nfs服務器即可,nfs服務器有啓動順序,必須先啓動rpcbind服務
配置/etc/exports文件
NFS共享目錄的主配置文件/etc/exports,並且共享目錄的訪問權限和允許訪問的主機等參數也在該文件中被定義。出於安全性的考慮,爲了防止意外輸出任何資源,該文件默認配置爲空,即沒有任何共享目錄。
在/etc/exports文件中,每一行代表一個共享目錄,其命令格式爲:
<輸出目錄> [客戶端(選項1,選項2,……)] [客戶端(選項1,選項2,……)]
其中輸出目錄與客戶端之間、客戶端與客戶端之間要有空格,但客戶端與選項之間無空格,除了輸出目錄是必選參數之外,其他參數均爲可選。
輸出目錄:指NFS服務器提供給客戶端使用的目錄。
客戶端:指網絡中可以訪問NFS服務器共享目錄的計算機,可以使用主機名或IP地址直接進行指定,也可以配合通配符“*”對子網或域中的計算機進行指定。如下:
*.abc.com abc.com域中全部計算機
test 名爲test的計算機
10.23.32.11/255.255.255.0 指定子網中的所有主機
192.168.10.1 指定ip地址的主機
www.baidu.com 指定域名的主機
* 所有主機
選項:用來設置輸出目錄的訪問權限、用戶映射等。/etc/exports中使用的選項比較多如下:
ro 默認設置,指定輸出目錄以只讀方式被共享,客戶端只能讀取,無權寫入
rw 設置輸出目錄可讀可寫
async 異步方式,將數據先存儲在緩衝區,需要時(列如收到一個請求)再將數據寫入磁盤
syns 將數據同步寫入緩衝區和磁盤中,雖然效率比較低,但可以確保數據的一致性
secure 限制客戶端只能從小與1024的TCP/IP端口連接NFS服務器,默認的中級或高級安全防火牆會關閉這些端口
insecure 允許客戶端大於1024的TCP/IP端口連接NFS服務器
wdelay 默認設置,檢查是否有一臺以上的計算機將要執行對一個共享目錄的寫操作,如果有則將這些操作集中執行
no_wdelay 若有寫操作則立即執行
hide 默認設置,當設置共享一個目錄時,不共享該目錄中的子目錄
no_hide 當設置共享目錄時,將該目錄中的子目錄一併共享
subtree_check 默認設置,如果輸出目錄是一個子目錄,則NFS會檢查其父目錄的權限
no_subtree_check 如果輸出目錄是一個子目錄,則NFS不檢查其父目錄的權限,這樣會提高效率。
insecure_locks 對於有些舊版的NFS客戶端,不會檢查用戶是否有權讀取一個被請求的文件
secure_locks 對於有些舊版的NFS客戶端,檢查用戶在一個被請求的文件上的權限
all_squash 將遠程訪問的所有普通用戶及其所屬的用戶組都映射爲匿名用戶和用戶組(通常爲nfsnobody).該選項適用於一些公共目錄(列如FTP目錄),且用戶的訪問權限應該設置得越低越好
no_all_squash 不將遠程訪問的所有普通用戶及其所屬的用戶組映射爲匿名用戶和用戶組
root_squash 默認選項,將root用戶及其所屬的用戶組都映射爲匿名用戶和用戶組
no_root_squash 不講root用戶及其所屬的用戶組映射爲匿名用戶和用戶組,客戶端上的root用戶可以擁有與在服務器上的root一樣的權限。該設置會引發嚴重的安全性問題。
anonuid=xyz 指定NFS服務器的/etc/passwd文件中的匿名用戶的UID
anongid=xye 指定NFS服務器的/etc/group文件中的匿名組的GID
例如,配置一臺NFS服務器,服務器的IP地址爲192.168.100.1,共享目錄爲/tmp/share,要求以只讀方式允許客戶端訪問,客戶端IP地址爲192.168.100.2,則NFS服務器端需修改配置文件如下:
在如某NFS服務器主配置文件的內容如下:
/nfs/share 192.168.8.0/24(rw) *(ro)
表示NFS服務器將/nfs/share設爲共享目錄,允許子網192.168.8.0/24內的所有主機進行讀/寫操作,而其他主機只具有讀取的權限
/nfs/teacher 192.168.10.10(rw)
表示NFS服務器將/nfs/teacher設爲共享目錄,只允許192.168.10.10主機執行讀/寫操作
/nfs/root *.baidu.com(ro,no_root_squash)
表示NFS服務器將/nfs/root設爲共享目錄,且baidu.com域中所有主機只能以讀方式訪問該目錄,且對於客戶端爲root用戶的情況,不將root映射爲匿名用戶。
/media/cdrom 192.168.8.*(ro)
表示NFS服務器將/media/cdrom設爲共享目錄,192.168.8.0/24子網中所有用戶都可以讀取該共享目錄。
利用exportfs命令修改設置
NFS服務器啓動後,可以使用適當的exportfs命令對NFS服務器的輸出目錄進行維護。
exportfs命令格式如下:
exportfs [選項]
-a 輸出/etc/exports文件中的所有共享目錄
-r 重新讀取/etc/exports文件中的設置,並使設置生效,而不重新啓動NFS服務
-u 停止輸出共享目錄
-v 顯示當前的共享目錄及詳細的選項設置
列如,當前/etc/exports文件的內容如下:
使用exportfs -v命令顯示當前設置的共享目錄
這裏表示所有的設置已經生效,同時exportfs命令將所有默認選項設置也一併顯示出來。
當修改了/etc/exportfs文件後,可以使用命令exportfs -rv使其生效,而無需重啓NFS:
如果需要停止NFS服務器當前的所有共享目錄,則可以使用命令exportfs -au或exportfs -v:
如果要恢復並輸出/etc/exports文件中定義的共享目錄,則可以使用下面的命令: