nfs關於使用者寫許可權的配置

2021-10-08 09:37:42 字數 1657 閱讀 8385

nfs是很常用的網路共享盤方式,訪問客戶端數量多了之後,為確保安全,會做許可權控制,一般都是放開讀許可權,而控制寫許可權。

本文將在幾種場景下說明 nfs 關於使用者寫許可權的配置。

nfs 服務端即便在 exports 配置檔案中配置了 rw,在客戶端掛載時,往往也無法正常寫入。

這個是因為 nfs 客戶端掛載訪問時是用 uid 對映的方式訪問:

對於 root 使用者,預設轉換成 nobody 賬號,也就是說,客戶端不管你是以什麼賬號訪問到 nfs 的掛載路徑,在服務端,都是識別類似為 nobody@,實際訪問到服務端上面的共享目錄時,是以 nobody 賬號的身份訪問。

對於非 root 使用者,則使用其賬號訪問,即如果 root 使用者掛載,但是使用 user1 使用者(假設 uid 為1000)訪問,則在 nfs 服務端也是識別為 uid 為 1000 的使用者訪問,如果本地有對應的 uid ,則對映為對應的使用者,即:如果服務端 uid 1000 對應為 testuser1,則最後客戶端 user1 所對應的許可權實際為服務端 testuser1 的許可權

對於 root 賬號,可以在 exports 配置檔案中新增 no_root_squash 選項即可,這樣在客戶端訪問時,root 賬號許可權不會被沖刷成 nobody / nfsnobody ,直接對映為服務端 root 賬號許可權。

但是這樣的配置許可權太大,存在安全風險,實際生產中比較少這麼配置。

nfs 並沒有類似 no_root_squash 這種針對非 root 普通使用者的配置選項,所以需要使用其他的方式配置。

如果要允許所有使用者,則在服務端,修改共享目錄的基礎許可權,更改777,即要保證 other 位的需要有 rwx 所有的許可權。

這樣配置後,並且 exportfs -r 重新讀取配置檔案生效後,即可有寫許可權。客戶端原先已經掛載的,則需 umount ,再 mount ,即生效。

(注:對於服務端來說,nobody 對於共享目錄來說,也是應用 other 位的許可權,所以此方法也適用於 root 賬號,但影響不大,非root賬號在此配置下,對於此共享目錄也擁有所有的許可權,跟 root 一致。所以,一般也不建議對所有使用者開放寫許可權。)

以下圖中操作是在服務端配置。

如果只允許個別非 root 普通使用者,則可使用 anonuid 和 anongid 配置項,然後對共享目錄配置 acl 許可權,根據所授權的 uid 或 gid 配置。

一般需要掛載的客戶端比較多,為了便於後續的配置管理,不需要經常調整配置,建議使用 anongid (如501)來配置,然後在客戶端建立使用者組,其 gid 跟服務端 anongid 一致,對於需要授權的使用者賬號,將新建立的使用者組新增至使用者的附屬組中。

以下為服務端配置:

以下為客戶端配置(服務端使用 anongid 時)

mysql配置使用者許可權 mysql使用者許可權配置

mysql使用者許可權配置 有什麼不對的地方請各位大神多多指教!1,檢視使用者表 mysql select user,password,host from mysql.user user 使用者名稱 password 密碼 加密 host 連線ip 2,開放遠端連線 vim etc mysql ma...

關於使用者許可權的理解

關於使用者許可權 使用者許可權一般涉及到以下幾個部分 使用者表 t user 身份表 t role 模組表 t module 身份表所存放的資料是賦予不同系統操作許可權的各個身份,如管理員,經理之類的。模組表所存放的資料是系統的各個模組的資訊。另外我們還需要一些表或在這些表中新增一些字段,讓這些表相...

SVN使用者許可權配置

repository目錄下的conf有三個檔案 svnserve.conf passwd authz,依次修改 你可以直接刪除預設的svnserve.conf檔案,然後使用下面的配置 vi svnserve.conf general anon access none auth access writ...