曲径通幽论坛

标题: 约束与非约束用户 [打印本页]

作者: beyes    时间: 2013-6-23 00:13
标题: 约束与非约束用户
每个 Linux 用户都会通过 SELiux 策略映射到 SELinux 用户。这就使得 Linux 用户继承了 SELinux 的限制权限,一般情况下,这么做会使得 Linux 用户的权限会受到更多的限制。可以使用 semanage login -l 列出映射的情况:
[root@groad.net ~]# semanage login -l

Login Name                SELinux User              MLS/MCS Range            

__default__               unconfined_u              s0-s0:c0.c1023           
root                           unconfined_u              s0-s0:c0.c1023           
system_u                  system_u                     s0-s0:c0.c1023
在 CentOS6 中,Linux 用户默认被映射为 __default__ 来登录,然后会被映射为 SELinux unconfined_u 用户。

如果新建一个 Linux 用户,那么 pam_selinux PAM 模块会自动将该用户映射到一个 SELinux 用户上,在这里就是 unconfined_u :
[beyes@groad.net ~]$ id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

约束与非约束 Linux 用户受到执行与写内存的检查,也会受到 MCS/MLS 的限制。

如果一个非约束 Linux 用户执行了一个程序,SELinux 策略会将你从 unconfined_t 域迁移到该程序所在的约束域,而非约束用户也会被这个约束域所限制。这样做具有很好的安全性 --- 尽管一个 Linux 用户是运行在非约束域的,而程序仍然处于约束域中,因此即使该程序被缓冲区溢出攻击了,它也会被安全策略所限制危害的扩大。

类似的,我们也可以对约束用户应用这些检查。然而,每一个约束的 Linux 用户都会被一个约束的用户域所限制(不是 unconfined_t 域)。SELinux 策略还定义了一个从约束用户域到它自己的目标约束域的迁移。在这种情况下,约束 Linux 用户就会被限制到目标约束域中。这里关键的一点是,特殊的权限是依照约束用户的角色进行关联的。在下图中,可以看到 RHEL/CentOS6 中 Linux 用户的基本约束域:
[attach]1629[/attach]















欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2