Windows ACL 在 UGREEN NAS 中的实现方式与安全机制

Windows ACL 在 UGREEN NAS 中的实现方式与安全机制

目录

一、概述

二、名词解释

三、自定义 Windows ACL 权限

四、查看 Windows ACL 权限

五、ACL 权限位说明

权限位(13 种)

继承属性(4 种)

六、权限继承机制

七、Windows ACL 与 Linux 权限的安全机制

八、管理员 SSH 登录与 ACL 校验机制

一、概述

访问控制列表(Access Control List,简称 ACL)是一种精细化的权限管理机制,用于控制系统中对象(如文件、文件夹或程序)的访问权限。每个 ACL 由多个访问控制条目(Access Control Entry,ACE) 组成,每个条目定义了特定用户或群组对目标对象的权限类型,如读取、写入、删除或管理等操作。

Ugreen NAS 完整支持 Windows ACL 权限模型。管理员可以通过 Ugreen NAS 的账户管理功能,为不同用户或群组配置独立的存储配额、访问速度限制以及访问权限,从而在保持高安全性的同时,实现灵活的多用户协作。
此外,每个用户都拥有独立的 “Home” 文件夹,系统通过 ACL 自动隔离用户间的数据访问,确保隐私与安全。

二、名词解释

名称

英文全称

定义说明

访问控制列表 (ACL)

Access Control List

用于定义对象安全属性的列表,对象包括文件、目录、进程等。ACL 由多个 ACE 条目组成。

访问控制条目 (ACE)

Access Control Entry

ACL 中的基本单元,定义了一个安全主体(用户或群组)的访问权限、继承属性等信息。

三、自定义 Windows ACL 权限

Ugreen NAS 提供了图形化的权限管理界面,管理员可通过以下方式配置用户、群组或共享文件夹的访问控制。

编辑用户权限:

1. 打开【控制面板】应用,点击【用户管理】>【用户】。

2. 右键选择要修改的用户,点击“编辑”

3. 点击“权限与设置”选项,设置用户对共享文件夹的访问级别:

禁止访问:无法访问该文件夹及其子文件夹;

只读:可查看但无法修改或删除内容;

读写:可读取、修改、删除或新建文件。

4. 点击“保存”完成设置。

编辑用户组权限:

1. 打开【控制面板】应用,点击【用户管理】>【用户组】

2. 右键选择目标群组,点击“编辑”

3. 点击“权限与设置”选项,为群组配置共享文件夹到访问级别(禁止访问 / 只读 / 读写)。

4. 点击“保存”完成设置。

编辑共享文件夹权限

1. 打开【文件管理】应用,侧边栏点击“共享文件夹”

2. 右键选择目标文件夹,点击“属性”。

3. 点击“权限”选项,可分别设置管理员、普通用户和用户组的访问权限。

4. 勾选或取消各用户、群组对应权限复选框后,点击“确定”保存设置。

四、查看 Windows ACL 权限

在 NAS 终端中可使用 ugacltool 命令查看当前目录或文件的 ACL 权限配置。例如:

ugacltool get test.txt

输出结果示例:

上述示例中包含 4 条访问控制条目(ACE):

admin 组:可读写

u1 用户:可读写

user2 用户:可读写

user3 用户:只读

五、ACL 权限位说明

Ugreen NAS 支持对以下 6 类角色设置 ACL 权限,同时支持“rwxpdDaARWcCo”13种权限位和“fdin”4种继承权限。

[user | group | owner | everyone | authenticated_user | system]

权限位(13 种)

符号

含义

说明

r

read data

读取文件内容

w

write data

写入/创建文件

x

execute

执行文件

p

append data

创建目录

d

delete

删除当前文件

D

delete child

删除目录下文件

a

read attribute

读取扩展属性

A

write attribute

写入扩展属性

R

read xattr

预留

W

write xattr

预留

c

read acl

读取 ACL

C

write acl

修改 ACL

o

ownership

修改归属(仅可改为自己)

继承属性(4 种)

符号

含义

说明

f

file inherited

文件继承

d

directory inherited

目录继承

i

inherit only

仅用于继承,不用于鉴权

n

no propagate

不递归多级继承,仅继承下一级

六、权限继承机制

1. 自动继承规则
子对象默认继承父目录的 ACL 权限。例如,若文件夹 Directory A 授予用户 Mike 读取权限,则该文件夹下的所有文件都会自动允许 Mike 访问。

2. 动态更新
当父目录权限修改后,系统会自动同步更新子文件夹与文件的权限。
若用户手动使用 chmod 命令修改文件权限,ACL 继承仍会在系统重启或重新同步时恢复生效。

七、Windows ACL 与 Linux 权限的安全机制

在 NAS 终端中使用 ls 或 stat 命令查看共享文件夹时,会发现文件权限显示为 777(即 rwxrwxrwx)。
这并不表示系统存在安全风险,而是出于兼容性与安全设计的考虑。

1. 兼容性差异:

Windows ACL 与 Linux 的传统权限体系(owner/group/others)结构不同,无法一一映射。
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 或自建的安全目录;

避免将任何敏感凭据或密钥文件存放于共享文件夹中。

八、管理员 SSH 登录与 ACL 校验机制

对于属于 admin 用户组管理员)的账户:

当使用 SSH 密钥登录时,系统仅验证与登录用户及 admin 组相关的 ACL 条目;

若检测到多余的 ACL 规则(如其他用户或群组被添加至同一目录),SSH 登录将被拒绝;

该设计确保了 SSH 公钥登录的安全性与唯一性。