Windows ACL 在 UGREEN NAS 中的实现方式与安全机制
目录
一、概述
访问控制列表(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 公钥登录的安全性与唯一性。