本篇承接自SELinux自定义策略初步,请阅读过该文章后再阅读本章
因为selinux最基本的安全策略就是类型强制策略(TE),因此所涉及的上下文其实指的是安全上下文中的type部分。
selinux策略语句结构如下
访问向量规则 主体上下文 客体上下文 : 类型 许可类型
访问向量规则一般如下:
allow 表示允许主体对某类客体的某些操作
dontaudit 表示不记录违反规则的决策信息
auditallow 表示允许操作同时记录访问决策信息
nerverallow 表示不允许主体对客体执行某种操作
类型有很多,常见的例如:file(文件) dir(目录) process(进程),不同的类型有不同的许可。
常见的许可有open,read,write,entrypoint等,但不同的类型所支持的许可也不同,例如fd类型仅支持use这一种许可 。
具体的类型和许可对应关系可以查找selinuxwiki
-----------------------------------------------------------------------------------------
在编写策略时,我们可能还会遇到一些宏,这些宏一般都是定义在对应的if文件中,大部分位于/usr/share/selinux/devel/include中,也可以find 后缀为if的文件,宏的命名非常规则,例如storage_getattr_fixed_disk_dev宏就位于storage.if中。