Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103753083
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-23 08:22:26

作者: Serge E. Hallyn/黄永兵译 出处:51CTO.com 
 
 
更进一步研究类型增强

不同用户使用相同的/bin/register程序读/写没有这个程序他们就不能访问的不同文件,这就是类型增强的核心概念:用户经过认证的上下文和正在被执行的代码将一起决定进程的“权利域”或“TE域”。

图1展示了我们系统中的域和类型:

图1

但是是什么阻止Bob作为经理登陆或Mary作为出纳登陆的呢?更有趣的是,老板是如何以这两者进行登陆的呢?

第一点是通过新的PAM模块实现的,简单地说,PAM(可插拔的认证模块)允许小块代码在不同认证步骤中执行,并允许模块灵活地执行,我已经介绍过一个新的模块,pam_ctx.so,它的代码在/usr/src/pam_ctx下,它为正被认证的用户名在文件/usermap.conf中搜索,并为这个用户找出默认的上下问,对于Bob而言,默认的上下文是cashier_u:cashier_r:cashier_t,对于Mary而言,默认的上下文是mgr_u:mgr_r:mgr_t,对于老板来说,默认的上下文是full_u:mgr_r:mgr_t,注意所有的上下文都由冒号分隔的3部分组成:

◆最后一部分是域,它最终决定用户在系统上的权限
◆第二部分是角色,它限制了用户可以进入的域
◆第一部分是SELinux用户,与角色和域相似,它限制了进程可以进入的角色

PAM模块通过将上下文写入文件/proc/$$/attr/exec来设置上下文,然后再对新域执行一个有效登记类型的shell脚本,查看策略的代码,你会看到mgr_r或许是与域mgr_t,mgr_register_t, and rolechange_t联系在一起,角色cashier_r或许是与域cashier_t和cashier_register_t联系在一起,类似地,SELinux用户mgr_u或许是与角色mgr_r联系在一起,cashier_u与cashier_r联系在一起,用户full_u或许是与mgr_r或cashier_r联系在一起。

图2展示了所有这些是如何联系在一起的

图2
阅读(261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~