《访问控制模型与权限管理》
第4章 自主访问控制(DAC)

4、自主访问控制(DAC)

4.1 DAC 的原理

自主访问控制(Discretionary Access Control, DAC) 是一种基于用户身份的访问控制模型。其核心思想是:资源的拥有者(Owner)有权自主决定谁可以访问该资源,以及授予何种访问权限。系统根据用户或用户组所属的身份来限制对客体的访问,而权限的传递与委派完全由资源所有者控制。

用户 (User) 所有者 (Owner) 文件 (File) 请求访问 授予权限 权限矩阵 (Access Matrix) 用户A 用户B 用户C ... 读、写 读 无 ...

图4-1 DAC 原理示意:所有者自主决定权限分配

4.2 所有者决定权限

在 DAC 模型中,资源的创建者自动成为该资源的所有者。所有者拥有对该资源的最高控制权,可以:

  • 授予权限:允许其他用户或用户组对资源进行读(r)、写(w)、执行(x)等操作。
  • 撤销权限:收回已授予的访问权限。
  • 转移所有权:将资源的所有权转让给其他用户(部分系统支持)。
  • 修改权限属性:更改资源的访问控制列表(ACL)或权限位。
所有者 (Owner) 授予权限 撤销权限 转移所有权

图4-2 所有者权限操作示意

4.3 典型实现:Unix/Linux 文件权限 rwx

Unix/Linux 系统是 DAC 模型的经典实现。每个文件和目录都关联一个所有者(Owner)和一个组(Group),权限分为三组:

权限类别 符号 含义 数值
所有者 (User) r 读取文件内容 / 列出目录内容 4
w 修改文件 / 在目录中创建或删除文件 2
x 执行文件 / 进入目录 1
组 (Group) r 同组用户可读 4
w 同组用户可写 2
x 同组用户可执行 1
其他 (Others) r 其他用户可读 4
w 其他用户可写 2
x 其他用户可执行 1

权限表示例:

# 查看文件权限
$ ls -l myfile.txt
-rw-r--r--  1 alice  staff  1024 Apr 10 10:30 myfile.txt

# 权限位分解:
# - rw- r-- r--
# 所有者: rw- (6)  组: r-- (4)  其他: r-- (4)
# 所有者 alice 可读写,同组用户可读,其他用户可读

# 修改权限(所有者操作)
$ chmod u+x myfile.txt   # 所有者添加执行权限
$ chmod 755 myfile.txt   # 设置权限为 rwxr-xr-x
文件 myfile.txt 权限位结构 所有者 (User) 组 (Group) 其他 (Others) rwx (7) r-x (5) r-- (4) 权限数值计算 r=4, w=2, x=1 → rwx = 4+2+1 = 7 chmod 754 file → 所有者:7 组:5 其他:4

图4-3 Unix/Linux rwx 权限位结构示意

4.4 优缺点分析

优点 缺点
  • 灵活性高:资源所有者可根据实际需求自主分配权限,适应性强。
  • 易于实现:权限模型简单直观,系统开销小,Unix/Linux 等广泛支持。
  • 用户友好:普通用户无需管理员介入即可管理自己的资源。
  • 权限粒度适中:rwx 三位权限覆盖了基本的读、写、执行需求。
  • 安全性较弱:权限可能被恶意传播(如木马程序利用用户权限)。
  • 缺乏集中管控:管理员难以统一审计和控制所有资源的访问。
  • 权限蔓延:用户可能无意中授予过多权限,导致信息泄露。
  • 不适用于高安全环境:无法强制实施最小权限原则和全局安全策略。
✅ 优点 ✦ 灵活性高,用户自主控制 ✦ 易于实现,系统开销小 ✦ 用户友好,无需管理员介入 ✦ 权限粒度适中,满足基本需求 ❌ 缺点 ✗ 安全性较弱,易被恶意利用 ✗ 缺乏集中管控与审计 ✗ 权限易蔓延,导致信息泄露 ✗ 不适用于高安全环境

图4-4 DAC 优缺点对比示意

4.5 小结

自主访问控制(DAC)以其灵活、简单、用户友好的特点,在个人计算机和中小型系统中得到广泛应用。Unix/Linux 的 rwx 权限模型是其典型代表。然而,DAC 在安全性、集中管控方面的不足,使其难以满足企业级和高安全环境的需求。在实际应用中,DAC 常与强制访问控制(MAC)或基于角色的访问控制(RBAC)结合使用,以构建更完善的权限管理体系。