全部產品
Search
文件中心

File Storage NAS:Apsara File Storage NAS SMB ACL概述

更新時間:Jul 11, 2024

本文簡要介紹NAS SMB ACL卷的根目錄預設值、相關特性及工作原理。

背景資訊

ACL許可權控製表是一項重要的企業級特性。在SMB檔案系統不連通AD服務時,NAS SMB卷的ACL是唯讀,使用者登入身份為匿名(Everyone)。阿里雲SMB協議檔案儲存體服務支援基於AD域系統的使用者身份認證及檔案系統層級的許可權存取控制。您可以將自建的AD服務與NAS SMB卷連通,通過AD域身份或者Everyone的方式掛載NAS SMB卷,從而對檔案、檔案夾設定ACL許可權。

NAS SMB ACL卷根目錄預設值

Apsara File Storage NAS SMB ACL的卷根目錄許可權預設值如圖所示:SMB_ACL_default_value

  • 預設值設計的原因

    • SYSTEM和Administrators這兩個ACL許可權項是為了與Windows NTFS的許可權對齊,保證管理員權限的程式能夠正常運行。同時,在連通阿里雲RAM帳號系統之後,為超級使用者提供管理員權限提供可能性。

    • CREATOR OWNER是為了實現繼承機制,也為了與Windows NTFS許可權對齊。

    • NAS SMB ACL可以修改配置,將允許匿名訪問設定為,在卷上禁止以Everyone身份進行訪問,只有域身份使用者才能訪問。

  • 相容使用者使用習慣

    • 為了相容不使用AD的使用者,對於AD功能開啟之前建立的檔案或檔案夾,Everyone身份擁有所有許可權(Full Control),保證不使用AD的使用者不受影響。不使用AD的使用者可以通過NTLM協議以Everyone的身份掛載檔案卷並能訪問Everyone所擁有的內容。

    • 新的AD使用者建立的檔案或檔案夾不會繼承Everyone許可權,所以不使用AD的使用者並不能訪問新的AD使用者建立的檔案或檔案夾,只有建立者使用者和管理使用者可以訪問。

    • AD使用者可以訪問不使用AD的使用者(即Everyone)建立的檔案或檔案夾。

NAS SMB ACL特性

不支援多重身份掛載同一NAS SMB卷

一個Windows Session,只能以一個身份掛載同一個檔案系統。如果一個使用者登入一台Windows機器後,他用一個域身份(可以是登入的域身份USER A,也可以其他域身份USER B)掛載了NAS SMB檔案系統,那麼他就不能在這個Windows Session以其它域身份(例如,USER C)再掛載NAS SMB檔案系統。如果以另一身份掛載會出現以下錯誤:Connect_existed_network

逃逸機制

如果出現惡意使用者強行刪除了管理員權限以及其他人的許可權,導致檔案、檔案夾不可用,需要用管理員身份掛載並重寫該檔案、檔案夾的許可權。

阿里雲NAS SMB檔案卷實現了超級使用者功能,您可以在控制台上配置某個使用者或群組為超級使用者,直接查看和修改任何檔案及其相關許可權,不受現有檔案許可權的限制。例如:當惡意使用者把檔案夾的擁有者改成自己,然後設定Deny Everyone之後,超級使用者就可以將改壞的許可權恢複回正確的許可權。

說明

在控制台更新超級使用者之後,請重新掛載SMB檔案系統。

Cygwin應用

Cygwin可以在Windows環境中虛擬POSIX環境,運行POSIX程式。但是在啟用SMB ACL之後,使用者SID、群組SID和Windows DACL許可權在Cygwin中會轉化成POSIX uid、gid和POSIX ACL。轉化細節請參見Cygwin ntsec.html

  • /etc/fstab中加入noacl選項,如圖所示。nacal

    加入noacl選項後,Cygwin不會啟用複雜的ACL轉換,而是對新產生的檔案和檔案夾使用預設mode值。USER和GROUP則為當前Windows登入使用者的使用者名稱和群組。基本規則如下:

    • 檔案夾預設mode和uid、gid(755)

      drwxr-xr-x 1 cat Domain Users 0 Jul 25 06:18 dir
    • 檔案的預設mode和uid、gid(644)

      -rw-r--r-- 1 cat Domain Users 0 Jul 25 06:42 file
    • 檔案的mode值可以為644或者444。

      如果是444,則檔案設定了DOS Read-only許可權。noacl只會轉換檔的DOS Read-only許可權。

    • chmod命令不能修改檔案夾的許可權,可以修改檔案的mode值到644或444。

    • chown或chgrp命令無效。

    • getfacl或setfacl命令不支援。

    • 因為用戶端檔案夾許可權只會顯示成755,檔案許可權只會顯示成644或444。可能會出現用戶端顯示有許可權,但是服務端拒絕請求的情況。

  • /etc/fstab中使用acl選項

    因為NAS SMB的預設掛載使用Everyone許可權,而Everyone在Cygwin對應為OTHER。Cygwin在組建檔案或檔案夾時,會有類似Linux的行為,在建立檔案之後自動執行chmod操作使檔案或檔案夾mode達到預設值。因為檔案夾的other預設值是r-x,檔案的預設值是r--,所以Everyone只有r-x或者r--的許可權,導致新產生的檔案夾裡Everyone無法建立新檔案,新產生的檔案對於Everyone也是唯讀。

    因此,強烈建議使用者在Cygwin下使用noacl選項,不要使用acl選項。

Linux系統AD和ACL應用

  • 在Linux下使用mount -t cifs掛載時,您可以指定掛載的域使用者身份,以及掛載後的檔案gid、uid、file mode、dir mode等。

  • 在使用檔案卷時,用戶端會根據掛載的uid、gid和登入的真實使用者身份進行基本的POSIX許可權檢查。

  • 在檔案伺服器端,無論Linux使用者以何種uid、gid身份登入,都將映射到該域使用者身份進行操作。Linux Root身份也沒有管理員權限,而是該域使用者的許可權。chmod、chown、chgrp、 getfacl或setfacl等Linux許可權操作都將不起作用。

更多資訊,請參見Linux用戶端以AD域使用者身份掛載並使用SMB檔案系統

NAS SMB ACL工作原理

阿里雲Apsara File Storage NAS支援使用者VPC(Virtual Private Cloud)或者使用者IDC(Internet Data Center)內的AD網域控制站的使用者管理和檔案系統存取權限控制,這樣可以打通混合雲使用者的雲上和雲下使用者認證以及檔案系統許可權控制。阿里雲SMB協議檔案儲存體服務可以依賴使用者部署線上下或者阿里雲上的AD網域控制站,通過Kerberos網路身份認證協議來進行AD域使用者身份的認證。使用者可以在配置了網域控制站的Windows或者Linux伺服器上,以域使用者身份串連並訪問SMB檔案系統,檔案系統伺服器可以得到使用者的域身份,然後達到目錄和檔案層級的存取權限控制。

NAS SMB ACL建立使用者認證及存取控制的流程如下:

NAS_基於AD域系統的使用者認證及存取控制

  1. 產生Keytab檔案。更多資訊,請參見將SMB檔案系統掛載點接入AD域

  2. 開啟SMB AD ACL功能並上傳Keytab檔案,將阿里雲SMB檔案系統掛載點接入AD域內。更多資訊,請參見步驟二:上傳Keytab檔案

    完成Keytab檔案上傳後,Keytab資訊就儲存到了阿里雲NAS檔案系統。這樣,阿里雲SMB檔案系統掛載點接入到了AD域內,您可以開始以AD域使用者身份掛載使用阿里雲SMB協議檔案系統。 詳情請參見Windows用戶端以AD域使用者身份掛載並使用SMB檔案系統Linux用戶端以AD域使用者身份掛載並使用SMB檔案系統

  3. 通過用戶端實現使用者認證和存取控制。

    使用者通過VPC內的VM或者IDC內的應用資源訪問SMB檔案系統建立串連的時候,首先可以通過目前已經實現的檔案系統許可權組進行許可權驗證,根據配置的許可權組資訊控制用戶端的串連及訪問,然後根據下面的邏輯進行使用者認證和存取控制。

    1. 通過AD域訪問檔案系統建立串連後,通過SMB協議協商使用者認證協議。

    2. 檔案伺服器通過尋找使用者檔案系統的配置,查詢是否配置了Kerberos認證支援。

    3. 使用者用戶端向AD(使用者VPC或是使用者IDC內的AD伺服器)發出訪問阿里雲檔案系統服務的請求。

    4. AD網域控制站認證使用者後,使用阿里雲檔案系統服務帳號的祕密金鑰加密使用者資訊,返回給使用者用戶端。

    5. 使用者用戶端將加密的使用者資訊通過SMB Session Setup傳給SMB檔案伺服器。

    6. 檔案伺服器通過使用者提供的檔案系統Keytab解密使用者資訊。

      說明

      其後在該Session上的所有訪問都用該使用者作為授權對象。

    7. 通過認證後,檔案系統返回給使用者用戶端認證通過。否則拒絕Session Setup請求。

    8. 應用向檔案系統發出檔案系統訪問,讀寫及其它請求。

    9. 檔案伺服器向使用者系統返迴文件訪問結果。

      檔案存取控制由檔案系統伺服器執行。檔案伺服器根據Session的使用者資訊和檔案系統的目錄或檔案的存取權限配置,允許或者拒絕使用者訪問。