4.3.1 能力表的概念及实例
2025年08月10日
4.3.1 能力表的概念及实例
定义4-2 设O为客体集合,R为权限集合,能力表c={(o,r),o∈O,r∈R},cap为将主体s映射为能力表c的函数,cap(s)={(oi,ri),1≤i≤n}表示主体s可使用ri中的任意权限访问客体oi。
例4-5 访问控制矩阵如图4-2所示,主体集合是Bob、Alice和John,客体集合是文件1、文件2、文件3和文件4。
对应的能力表:
cap(Bob)={(文件1,{拥有}),(文件2,{读,写}),(文件4,{执行})}
cap(Alice)={(文件1,{写}),(文件2,{拥有}),(文件3,{拥有}),(文件4,{执行})}
cap(John)={(文件1,{读,写}),(文件3,{写}),(文件4,{拥有})}
例4-6 访问控制矩阵如图4-3所示,主体集合是Bill和Alice,客体集合是Bill.doc、Edit.exe和Sun.com。
对应的能力表:
cap(Bill)={(Bill.doc,{读,写}),(Edit.exe,{执行}),(Sun.com,{读,写,执行})}
cap(Alice)={(Edit.exe,{执行}),(Sun.com,{读,执行})}
访问能力表是最常用的基于行的自主访问控制。能力是为主体提供的对客体具有特定访问权限的标志,它决定主体是否可以访问客体以及以什么方式访问客体。主体可以将能力转移给为自己工作的进程,在进程运行期间,还可以添加或者修改能力。
能力和自主访问控制相联系。当主体创建新的对象时,它可以通过授予其他主体合适的能力以允许它们访问这个对象。同样,当一个主体调用另一个主体时,它可以将它的能力或部分能力传递给被调用的主体。