一、 查看系統是否已經安裝了服務
Rpm -qa | grep nfs
二、 啓動服務,而且開機自動運行
Systemctl start nfs
Systemctl enabled nfs
三、 配置NFS服務
(1) 建立共享文件,並在問價加下建立一個文檔
Mkdir /share/webs
Echo 「this is nfs」 > nfs.txt
(2) 配置nfs服務的配置文件
文件的每一行定義一個共享目錄;
/share/webs這是須要共享的目錄
192.168.80.0/24容許訪問的客戶端,這裏表示整個網段的均可以訪問,也能夠指定單個地址,也能夠用星號表示全部用戶均可以訪問。
(ro,sync)選項用於訪問時候的權限,這裏指可讀權限,而且將數據同步到硬盤。
具體的權限包括如下幾種:
Ro 只讀權限
Rw讀寫權限
Sync數據同步寫入內存硬盤
no_root_squash 訪問共享目錄時,用戶若是是root權限,對共享目錄也具備root權限(最好不要設置,增長服務安全隱患,稍後再提)
root_squash 若是訪問共享目錄是root的權限用戶,對共享目錄的權限會被壓縮爲nfsnobody用戶的權
all_squash 無論你訪問共享目錄的用戶是誰,都必須壓縮爲nfsnobody用戶的權限
四、 下面經過實例來分析這幾個權限
(1) 將共享目錄/share/webs設爲全部用戶只讀權限訪問
修改配置文件
重啓服務
客戶端驗證
驗證是否能夠寫入
(2) 將共享目錄/share/webs2設置爲192.168.80.0/24用戶能夠有讀寫權限
修改配置文件,添加一行;並建立共享目錄
客戶端驗證
這裏爲何提示權限不夠,咱們明明給了能夠寫入的權限?
由於nfs服務配置中,爲了安全考慮,服務默認會將訪問的root用戶權限壓縮爲nfsnobody用戶權限。可是對於這個用戶,在共享目錄的權限是沒有寫入的。
因此當咱們去寫入一個文件的時候,對於這個目錄來說,用戶nfsnobody用戶沒有寫入的權限。因此纔會出現錯誤提示。
解決方法:給目錄的其餘用戶權限加上能夠寫入的權限(還有更好的方法,一會了解)
哎,這下建立成功。
(3) 綜合分析no_root_squash | root_squash | all_squall權限帶來的安全問題web
回到咱們在實例(2)中,出現權限不足的問題,那就是由於默認設置了root_squash權限,若是客戶端root用戶進行訪問的時候,將root權限壓縮爲nfsnobody權限。安全
接下來表演一波,取消root_squash的權限,使用no_root_squash權限,即便共享目錄沒有寫入的權限,我照樣可以寫入文件。
修改配置文件添加no_root_squash權限
清除共享文件寫入權限
重啓服務,客戶端驗證
事實證實,目錄沒有寫入權限仍然能夠建立文件
你說這和安不安全有什麼區別嗎?注意了,通常共享目錄都會有寫入權限,固然就可已刪除。例如一個搞破壞的人擁有了這樣的權限,直接把全部共享文件刪了,那就涼涼了。
因此當咱們設置一個nfs服務的時候,切記不能使用no_root_squash權限。最好能使用root_squash和all_squash權限。
All_squash權限是將全部的訪問用戶都壓縮爲nfsnobody用戶權限。
固然出於對目錄安全的考慮,咱們可還能夠將共享目錄的全部者,所屬組設爲nfsnobody。
這樣無論你是用什麼用戶訪問,若是不被壓縮爲nfsnobody用戶,是沒有辦法在這個用戶下作任何操做。固然前提不要加入no_root_squash權限。ide