环境权限
维基百科,自由的 encyclopedia
环境权限(英文:Ambient Authority)是系统访问控制研究中的术语。当主体(比如某个计算机程序或Linux上的某个用户)指明它需要的客体(Object,比如某一文件)的名称和它将要对该客体执行的动作(Operation,比如“复制”)便可以完成该动作的时候,我们称该主体使用了环境权限。[1][2][3]
在“环境权限”的定义中:
- 客体的“名称”指的是可被任何主体使用的某一客体的唯一标识符,这一“名称”本身不包含它所指代的客体的权限信息。(举例来说,有一客体名为“foo.txt”,主体“root”拥有权限“rwx”,名称指的就是“foo.txt”,并不包含权限“rwx”);
- 一个由主体发起的动作“获得许可(或称“可以完成”)”指的是该主体能够提出任何一种能够完成该动作的请求。(举例来说,主体“root”具有“foo.txt”的“r”权限,那么当主体提出“r foo.txt”的时候能够完成“r”的动作,我们说主体的“r”动作获得了许可)
“环境权限”存在于“广泛的可见空间(比如全局环境变量)”,也就是说任何主体都可以通过名称请求它并完成动作。
下面是一个C程序通过open()程序调用来完成读取文件的操作:
open(“filename”,O_RDONLY, 0)
在程序调用过程中,程序仅仅指明了目标文件的文件名,此文件名不包含任何的权限信息,也就是说C程序无法从此文件名中获得权限信息。在这个语境中,权限信息存在于环境中,这也就是我们所说的“环境权限”。