访问控制的原理注定要和虚拟文件系统和进程管理有着非常紧密的联系,因为作为用户主体的表现形式就是进程,而作为资源客体对象的表现形式就是文件,而访问 控制就是如何实现正确的用户可以访问正确的资源。Linux能够提供给我们许多可信的方式来处理这样的问题。
初始化工作
这个初始化工作在init/main.c中的start_kernel()中security_init()定义了,其具体的实现是在security/security.c中:
int __init security_init(void)
{
printk(KERN_INFO "Security Framework v" SECURITY_FRAMEWORK_VERSION
" initialized/n");
if (verify(&dummy_security_ops)) {
printk(KERN_ERR "%s could not verify "
"dummy_security_ops structure./n", __FUNCTION__);
return -EIO;
}
security_ops = &dummy_security_ops;
do_security_initcalls();
return 0;
}
这个函数首先用verify来验证所指定的访问控制策略(dummy_security_ops)是否为空,如果为空就按“保持默认”的方式进行分 配,这里的“保持沉默”就是对于任何的访问控制采取不管不问的方式处理了。然后