1. 程式人生 > >nfs服務權限配置

nfs服務權限配置

Linux NFS 權限設置

1、 查看系統是否已經安裝了服務
Rpm -qa | grep nfs
2、 啟動服務,並且開機自動運行
Systemctl start nfs
Systemctl enabled nfs
3、 配置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用戶的權限
4、 下面通過實例來分析這幾個權限
(1) 將共享目錄/share/webs設為所有用戶只讀權限訪問
修改配置文件
技術分享圖片
重啟服務
技術分享圖片
客戶端驗證
技術分享圖片
技術分享圖片
驗證是否可以寫入
技術分享圖片
(2) 將共享目錄/share/webs2設置為192.168.80.0/24用戶可以有讀寫權限
修改配置文件,添加一行;並創建共享目錄
技術分享圖片
技術分享圖片
客戶端驗證
技術分享圖片
這裏為什麽提示權限不夠,我們明明給了可以寫入的權限?
因為nfs服務配置中,為了安全考慮,服務默認會將訪問的root用戶權限壓縮為nfsnobody用戶權限。但是對於這個用戶,在共享目錄的權限是沒有寫入的。
技術分享圖片
所以當我們去寫入一個文件的時候,對於這個目錄來講,用戶nfsnobody用戶沒有寫入的權限。所以才會出現錯誤提示。
解決方法:給目錄的其他用戶權限加上可以寫入的權限(還有更好的方法,一會了解)
技術分享圖片
技術分享圖片
哎,這下創建成功。
(3) 綜合分析no_root_squash | root_squash | all_squall權限帶來的安全問題

回到我們在實例(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權限。

nfs服務權限配置