UGREEN NAS 上的 Windows ACL 實作與安全機制

UGREEN NAS 上的 Windows ACL 實作與安全機制

目錄

I.概述

II.術語說明

III. 自訂 Windows ACL權限

IV. 查看 Windows ACL權限

V. ACL 權限位元說明

權限位元(13 種類型)

繼承屬性(4 種類型)

VI. 權限繼承機制

VII. Windows ACL 與 Linux 權限的安全機制比較

VIII. 管理員SSH登入與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公開金鑰登入的安全性與唯一性。