操作系统访问控制机制

本文介绍了访问控制技术如何通过设置保护域和访问矩阵来管理用户对系统资源的权限,包括访问权的表示、保护域的作用、访问矩阵的构建及其在实际应用中的实例。同时,讨论了访问控制表和访问权限表的实现方式以优化存储和查找效率。
摘要由CSDN通过智能技术生成

使用访问控制技术,可以设置用户对系统资源的访问权限,即限定用户只能访问允许访问的资源。访问控制还可以通过设置文件的属性,来保护文件只能被读而不能被修改,或只允许核准的用户对其进行修改等。

1.1 保护域

把一个进程能对某对象执行操作的权利称为访问权,它可以用一个有序对<对象名,权集>来表示,例如,某进程对文件F1有执行读和写操作的权利,这时,该进程的访问权可表示为<F1,{RW}>

保护域是进程对一组对象访问权的集合,进程只能在指定域内执行操作。因此,保护域规定了进程所能访问的对象和能执行的操作。

不同的保护域可以相交,相交部分表示它们有共同的权限。

补充:

  • R:读操作

  • W:写操作

  • E:执行操作

  • S:切换操作

实例:

在下图所示的3个域中,它们分别是D1D2D3。其中D2D3相交,表明访问权限<O7,{W}>D2D3共享,这表示运行在D2D3上的任意一个进程都可以对对象O7执行写操作。需要注意的是,进程只有在D1中执行时才能读写对象O1,另外,仅在域D3中的进程才能执行对象O6

1.2 访问矩阵

保护域机制是实现系统资源保护的一种模型,我们可以利用一个矩阵来描述这种模型,称之为访问矩阵(Access Matrix)

访问矩阵的行代表域,列代表对象。矩阵的每个条目是一个访问集合。由于列明确定义了对象,可以在访问权限中删除对象名称。条目<i,j>定义了在域Di中执行的进程在访问对象Oi时被允许执行的操作集合。

实例:

在下表所示的访问矩阵中,进程在域D1中执行时,它可以读文件F2,写文件F1F2,执行文件F2F3。进程在域D4中执行时,可以读文件F2F3,写文件F1。只有在域D2中执行的进程才可以访问打印机。

对象域F1F2F3打印机
D1WR, W, EE
D2RW
D3ER
D4R, WR

如果将域本身也看作一个保护对象,可以把域的切换操作添加到访问控制矩阵,这样即可控制域切换。当需要将一个进程切换到另外一个域时,其实就是在一个对象(域)上执行一个操作(切换)。进程必须能够在域之间进行切换,当且仅当访问权限switch∈access(i,j)时,才允许从域Di切换域Dj

实例:

在下表中,一个在域D2中执行的进程可以切换到域D3。域D4中的一个进程可以切换到域D1,而D1中的进程可以切换到域D2

对象域F1F2F3打印机D1D2D3D4
D1WR, W, EES
D2RWS
D3ERSSS
D4R, WRS

1.3 访问矩阵的实现

访问控制表

把访问矩阵按列向量(对象)划分,为每一列建立一张访问控制表ACL(Access Control List)。

在该表中,矩阵中属于该列的所有空项已被删除,只剩下有序对<域,权集>。通常情况下,访问矩阵中的空项远多于非空项,因而使用访问控制表可以显著地减少所占用的存储空间提高查找速度

实例:

进程在域D1中执行时,它可以读、写和执行文件F2。进程在域D3中执行时,可以执行文件F2。由于域D2D4为空,因此,访问控制表中不包含D2D4项,从而节省了存储空间。

对象域F2
D1R, W, E
D3E

访问权限表

把访问矩阵按行(域)划分,为每一行建立一张访问权限表CL(Capability List)。访问权限表是由一个域对每一个对象可以执行的操作集合所构成的表。访问权限表包括两部分:对象名访问权。表中的每一项为该域对某对象的访问权限。

实例:

进程在域D1中执行时,它可以写文件F1,读、写和执行文件F2,执行文件F3

对象域F1F2F3
D1WR, W, EE
  • 60
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值