-
SELinux的配置和策略管理文件在rk3399_android7.1_软件开发指南_v2.09_20190527中有所涉及
资源介绍
13.1 SELinux配置和策略管理文件
SELinux包括了允许管理 SELinux特定增强的文件,包括策略,这包括设置当安装了多
个策略时使用哪个策略,标记管理文件和 SELinux应用程序和实用程序的配置文件。
注意:本章中涉及到的文件都是基于 Fedora Core 4(FC 4)系统的,域 RHEL 4相比较
可能稍微有所不同,而且 FC 5中肯定又有很多增强了,因此我们会标明不同的地方。
13.1.1.SELinux配置文件(/etc/selinux/config)
SELinux配置文件/etc/selinux/config控制系统下一次启动过程中载入哪个策略,以
及系统运行在哪个模式下,我们可以使用 sestatus命令确定当前 SELinux的状态,清单 13-1
显示了一个 config文件的例子:
清单 13-1./etc/selinux/config 文件的内容
1 # This file controls the state of SELinux on the system.2 # SELINUX= can take
one of these three values:3 # enforcing - SELinux security policy is enforced.4 #
permissive - SELinux prints warnings instead ofenforcing.5 # disabled - SELinux is
fully disabled.6 SELINUX=enforcing7 # SELINUXTYPE= type of policy in use. Possible
values are:8 # targeted - Only targeted network daemons areprotected.9 # strict -
Full SELinux protection.10 SELINUXTYPE=strict
这个文件控制两个配置设置:SELinux模式和活动策略。SELinux模式(由第 6行的
SELINUX选项确定)可以被设置为 enforcing,permissive或 disabled。在 enforcing模式
下,策略被完整执行,这是 SELinux的主要模式,应该在所有要求增强 Linux 安全性的操作
系统上使用。在 permissive模式下,策略规则不被强制执行,相反,只是审核遭受拒绝的
消息,除此之外,SELinux不会影响系统的安全性,这个模式在调试和测试一个策略时非常
有用。
在 disabled模式下,SELinux内核机制是完全关闭了的,只有系统启动时策略载入前
系统才会处于 disabled模式,这个模式和 permissive 模式有所不同,permissive模式有
SELinux内核特征操作,但不会拒绝任何访问,只是进行审核,在 disabled模式下,SELinux
将不会有任何动作,只有在极端环境下才使用这个模式,例如,当策略错误阻止你登陆系统
时,即使在 permissive模式下也有可能发生这种事情,或我们不想使用 SELinux时。
警告:在 enforcing和 permissive模式或 disabled模式之间切换时要小心,当你返回
enforcing模式时,通常会导致文件标记不一致,本章后面我们将会讨论如何修复文件标记
问题。
SELinux配置文件中的模式设置由 init使用,在它载入初始策略前配置 SELinux使用。
SELinux配置文件中的 SELINUXTYPE选项告诉 init在系统启动过程中载入哪个策略,
这里设置的字符串必须匹配你用来存储二进制策略版本的目录名,例如,我们使用 strict
策略作为例子,因此我们设置 SELINUXTYPE=strict,确保我们想要内核使用的策略位于
/etc/selinux/strict/policy/,如果我们已经创建了我们自己的自定义策略,如
custom_policy,我们应该将这个选项设置为 SELINUXTYPE=custom_policy,确保我们编译
的策略位于/etc/selinux/custom_policy/policy/。