Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1277626
  • 博文数量: 632
  • 博客积分: 2778
  • 博客等级: 大尉
  • 技术积分: 3387
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 09:09
个人简介

123

文章分类

全部博文(632)

文章存档

2014年(36)

2013年(33)

2012年(563)

分类: LINUX

2012-12-11 11:30:54


1、安全上下文
安全上下文包括了所有事情的属性的描述,包括文件, 目录, 进程, 等以上所有的东西。安全上下文包括了身份,角色和域类型。在SELinux系统上你可以用id 命令来查看你当前用户的安全上下文。
使用了SELinux的系统中,每一个进程的上下文都包含三个组成部分:一个ID(identity),一个角色(role)和一个域(domain)
一个安全上下文可以像 identity:role:domain 这样一种描述符的方式简明的表现出来。
2、identity(身份)
ID 是指这个进程的所有者,就是UNIX账户,但前提是这个账户必须被预先编译到SELinux策略中去使SELinux认识这个账户,不然的话 SELinux默认地将那些未知的系统进程ID记为 system_u ,将那些未知的用户进程ID记为 user_u;角色用来判断某个处于此角色的ID可以进入哪些域,还用来防止某个处于此角色的ID进入其它不该进入的域。比如, user_r角色就不允许进入 sysadm_t (重要的系统管理域)。换句话说就是,那些只有 user_u ID的进程只能扮演 user_r 这个角色,而 user_r 这个角色 永远不能被许可进入 sysadm_t 域。从而,那些只有 user_u 这个ID的人是别想进入 sysadm_t 域的
运行su 命令不会改变SELinux中的身份(identity)
[test@linuxas ~]$ id
uid=500(test) gid=500(test) groups=500(test) context=user_u:system_r:unconfined_t
[test@linuxas ~]$ su root
Password:
[root@linuxas test]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=user_u:system_r:unconfined_t
一个无特权用户 test 运行 id 命令 (在启动SELinux的情况下) 可以看到用户的安全上下文:
context=user_u:system_r:unconfined_t
现在, 如果 使用su切换成 root 再运行id, 他将发现安全上下文仍然是:
context=user_u:system_r:unconfined_t
身份保持相同, 跟没切换到root时一样。
3、role(角色)
角色决定了那些域可以使用。 哪些域可以被哪些角色使用可以预先定义在策略的配置文件里。如果一个策略数据库中定义了一个角色不可以使用一个域, 它将被拒绝。
4、domain(域)
所有进程都在域中运行,域直接决定了进程的访问。 域基本上是一个进程允许做的操作的列表, 或者说它决定了一个进程可以对哪些类型进行操作。域就好像一个标准UNIX的uid的概念。在有SELinux的系统上, 如果一个正在执行的进程想要转换进入特权域执行时,如果这个进程的角色被设置成不允许进入特权域的话, 这个进程就不能执行。
常见的例子是sysadm_t是系统管理域, user_t 是无特权用户域。 Init运行在init_t 域, named 运行在 named_t 域。
5、类型
类型分配给一个对象并决定谁可以访问这个对象。 它的定义和域基本相同, 不同就是域是对进程的应用而类型是分配给目录,文件,和套接字的。
6、策略
策略就是可以设置的规则,决定了一个角色的用户可以访问什么; 哪个角色可以进入哪个域,哪个域可以访问哪个类型等这样的问题。 你可以根据你想要建立的系统的特点来决定设置什么样的策略。

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