UGREEN NAS 上的 Windows ACL 實作與安全機制
I. 概述
存取控制清單(ACL)是一種細粒度的權限管理機制,用於控制系統內物件(如檔案、資料夾或程式)的存取權限。每個ACL由多個存取控制項目(ACE)組成,每個項目定義特定使用者或群組對目標物件所擁有的權限類型,例如讀取、寫入、刪除或管理。
Ugreen NAS 完全支援 Windows ACL 權限模型。管理員可透過帳戶管理功能,為不同使用者或群組設定獨立儲存配額、存取速度限制及權限,在維持高安全性之餘實現彈性多使用者協作。
此外,每位使用者皆擁有獨立的「家目錄」。系統透過 ACL 自動隔離使用者間的資料存取權限,確保隱私與安全。
II. 術語表
|
名稱 |
完整英文名稱 |
定義 |
|
存取控制清單 (ACL) |
存取控制清單 |
用於定義物件(包括檔案、目錄、程序等)安全屬性的清單。ACL 由多個 ACE 項目組成。 |
|
存取控制項目 (ACE) |
存取控制項目 |
ACL 中的基本單位,用於定義安全主體(使用者或群組)的存取權限、繼承屬性及其他資訊。 |
III. 自訂 Windows ACL 權限
Ugreen NAS 提供圖形化權限管理介面。管理員可透過以下方式設定使用者、群組或共用資料夾的存取控制:
編輯使用者權限:
1. 開啟[控制台]應用程式,點擊[使用者管理] > [使用者]。
2. 於需修改之使用者上按滑鼠右鍵,選擇「編輯」。
3. 點擊「權限與設定」選項,設定使用者對共享資料夾的存取層級:
● 拒絕存取:無法存取此資料夾及其子資料夾;
● 唯讀:可檢視內容但無法修改或刪除;
● 讀寫權限:可讀取、修改、刪除或建立檔案。
4. 點擊「儲存」完成設定。
編輯使用者群組權限:
1. 開啟[控制台]應用程式,點擊[使用者管理] > [使用者群組]
2. 於目標群組上按右鍵,選擇「編輯」。
3. 點擊「權限與設定」選項,配置該群組對共用資料夾的存取層級(拒絕存取/唯讀/讀寫)。
4. 點擊「儲存」以完成設定。
編輯共用資料夾權限
1. 開啟【檔案管理員】應用程式, 點擊側邊欄中的 【共用資料夾】
2. 於目標資料夾上點擊右鍵,選擇「內容」。
3. 點擊「權限」選項,分別設定管理員、一般使用者及使用者群組的存取權限。
4. 為每個使用者或群組勾選或取消勾選對應的權限核取方塊,然後點擊「確定」儲存設定。
IV. 查看 Windows ACL 權限
在 NAS 終端機上,使用`ugacltool`指令檢視當前目錄或檔案的 ACL 權限設定。例如:
ugacltool get test.txt
範例輸出:

上述範例包含 4 項存取控制項目 (ACEs):
● 管理員群組:讀取與寫入權限
● 使用者 u1:讀取與寫入權限
● 使用者 user2:讀取與寫入權限
● 使用者 user3:唯讀權限
V. ACL 權限位元說明
Ugreen NAS 支援為以下 6 種角色類型設定 ACL 權限,包含 13 種權限位元(「rwxpdDaARWcCo」)及 4 種繼承權限(「fdin」)。
[使用者 | 群組 | 所有者 | 所有人 | 驗證使用者 | 系統]
權限位元 (13 種)
|
符號 |
含義 |
說明 |
|
r |
讀取資料 |
讀取檔案內容 |
|
w |
寫入資料 |
寫入/建立檔案 |
|
x |
執行 |
執行檔案 |
|
p |
追加資料 |
建立目錄 |
|
d |
刪除 |
刪除當前檔案 |
|
D |
刪除子目錄 |
刪除目錄中的檔案 |
|
a |
讀取屬性 |
讀取擴充屬性 |
|
A |
寫入屬性 |
寫入擴展屬性 |
|
R |
讀取 xattr |
保留 |
|
W |
寫入 xattr |
保留 |
|
c |
讀取 ACL |
讀取 ACL |
|
C |
寫入 ACL |
修改 ACL |
|
o |
所有權 |
修改所有權(僅可變更為自身) |
繼承屬性(4 種類型)
|
符號 |
含義 |
說明 |
|
f |
檔案繼承 |
檔案繼承 |
|
d |
目錄繼承 |
目錄繼承 |
|
i |
僅繼承 |
僅用於繼承,不用於驗證 |
|
n |
不傳播 |
不透過多層次傳播;僅從下一層級繼承 |
VI. 權限繼承機制
1. 自動繼承規則(
) 子物件自動繼承父目錄的 ACL 權限。例如:若目錄 A授予使用者Mike讀取權限,該目錄內所有檔案將自動允許Mike存取。
2. 動態更新
當父目錄權限變更時,系統會自動將更新同步至子資料夾與檔案。
若使用者透過chmod 指令手動修改檔案權限,系統重啟或重新同步後將恢復 ACL 繼承。
VII. Windows ACL 與 Linux 權限的安全機制比較
當在 NAS 終端機使用 ls 或 stat 指令檢視共用資料夾時,檔案權限可能顯示為 777(即 rwxrwxrwx)。
此現象並非安全漏洞,而是基於相容性與安全設計考量所致。

1. 相容性差異:
Windows ACL 的結構與 Linux 傳統權限系統(擁有者/群組/其他使用者)不同,無法直接對應。
Ugreen NAS 顯示 777 是為了確保所有存取控制邏輯皆由 ACL 層統一管理。
2. Windows ACL 與 SSH 權限檢查機制:
當目錄或檔案啟用 Windows ACL 時,系統將依據 ACL 而非傳統 Linux 權限判定存取權限。使用 `ls -l` 查看權限時會顯示 777(rwxrwxrwx)——此顯示方式係基於相容性與安全性考量所採用。
若將 SSH 公鑰檔案儲存於共享資料夾並嘗試登入 NAS,受 Windows ACL 管理之目錄將導致 Linux 層顯示 777 權限。sshd 服務在登入前安全檢查時,會判定公鑰權限過於寬鬆而拒絕驗證。
此非核心層級存取拒絕,而是 SSH 服務主動阻擋不安全登入嘗試的機制。
因此,共享資料夾中權限顯示為 777 的檔案本身並不構成安全風險。相反地,此機制能防止金鑰誤置於共享目錄時遭濫用,實屬更安全且合理的設計選擇。
3. 安全建議:
SSH登入金鑰:請存放於家目錄下的 ~/.ssh 目錄;
Docker 使用金鑰:可存放於 /root 或自訂安全目錄;
避免將任何敏感憑證或金鑰檔案存放於共享資料夾中。
VIII. 管理員SSH登入與ACL驗證機制
針對隸屬管理員使用者群組(administrators)的帳戶:
● 使用 SSH 金鑰登入時, 系統僅驗證與登入使用者及管理員群組相關的 ACL 條目;
● 若 偵測到冗餘 ACL 規則(例如:其他使用者或群組被添加至相同目錄),SSH 登入將被拒絕;
● 此設計 確保SSH公開金鑰登入的安全性與唯一性。