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服務的配置文件
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設爲所有用戶只讀權限訪問
修改配置文件
nfs服務權限配置
重啓服務
nfs服務權限配置
客戶端驗證
nfs服務權限配置
nfs服務權限配置
驗證是否可以寫入
nfs服務權限配置
(2) 將共享目錄/share/webs2設置爲192.168.80.0/24用戶可以有讀寫權限
修改配置文件,添加一行;並創建共享目錄
nfs服務權限配置
nfs服務權限配置
客戶端驗證
nfs服務權限配置
這裏爲什麼提示權限不夠,我們明明給了可以寫入的權限?
因爲nfs服務配置中,爲了安全考慮,服務默認會將訪問的root用戶權限壓縮爲nfsnobody用戶權限。但是對於這個用戶,在共享目錄的權限是沒有寫入的。
nfs服務權限配置
所以當我們去寫入一個文件的時候,對於這個目錄來講,用戶nfsnobody用戶沒有寫入的權限。所以纔會出現錯誤提示。
解決方法:給目錄的其他用戶權限加上可以寫入的權限(還有更好的方法,一會了解)
nfs服務權限配置
nfs服務權限配置
哎,這下創建成功。
(3) 綜合分析no_root_squash | root_squash | all_squall權限帶來的安全問題

回到我們在實例(2)中,出現權限不足的問題,那就是因爲默認設置了root_squash權限,如果客戶端root用戶進行訪問的時候,將root權限壓縮爲nfsnobody權限。

接下來表演一波,取消root_squash的權限,使用no_root_squash權限,即使共享目錄沒有寫入的權限,我照樣能夠寫入文件。
修改配置文件添加no_root_squash權限
nfs服務權限配置
清除共享文件寫入權限
nfs服務權限配置
重啓服務,客戶端驗證
nfs服務權限配置
事實證明,目錄沒有寫入權限仍然可以創建文件
你說這和安不安全有什麼區別嗎?注意了,一般共享目錄都會有寫入權限,當然就可已刪除。例如一個搞破壞的人擁有了這樣的權限,直接把所有共享文件刪了,那就涼涼了。
nfs服務權限配置
所以當我們設置一個nfs服務的時候,切記不能使用no_root_squash權限。最好能使用root_squash和all_squash權限。
All_squash權限是將所有的訪問用戶都壓縮爲nfsnobody用戶權限。
當然出於對目錄安全的考慮,我們可還可以將共享目錄的所有者,所屬組設爲nfsnobody。
這樣不管你是用什麼用戶訪問,如果不被壓縮爲nfsnobody用戶,是沒有辦法在這個用戶下做任何操作。當然前提不要加入no_root_squash權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章