Linux多安全策略和动态安全策略框架模块代码分析报告(13)
策略库
在SELinux中,整个策略库使用policydb数据结构表示。当系统启动或用户手动装载一个安全策略时,所有策略相关数据经过处理之后均存放在policydb类型的全局变量policydb中。对于policydb结构,其定义在security/selinux/ss/policydb.h中,各字段的含义如表所示:
类型 |
字段 |
含义 |
int |
mls_enable |
是否启用了MLS策略 |
struct symtab |
symtab |
各种字符串对应的符号表 |
struct calss_datum ** |
class_val_to_struct |
通过类别值索引的类别属性表 |
struct role_datum ** |
role_val_to_struct |
通过角色值索引的角色属性表 |
struct user_val_to_struct ** |
user_val_to_struct |
通过用户值索引的用户属性表 |
struct avtab |
te_avtab |
类型强制的访问向量规则和类型规则 |
struct role_trans * |
role_tr |
策略库支持的角色转换规则 |
struct hashtab * |
filename_trans |
文件转换规则的实际设置 |
struct cond_bool_datum ** |
bool_val_to_struct |
通过布尔值索引的类别属性表 |
struct avtab |
te_cond_avtab |
类型强制的条件访问向量规则与类型规则 |
struct cond_node * |
cond_list |
条件语句组成的列表 |
struct role_allow * |
role_allow |
|
struct ocontext * |
ocontexts |
初始SID、未标记的文件系统、TCP/UDP的端口、网络接口和节点对应的的安全上下文 |
struct genfs * |
genfs |
不支持固定标记映射或没有使用固定标记行为的文件系统中的文件的安全上下文 |
struct hashtab* |
range_tr |
区域转换表 |
struct ebitmap |
policycaps |
策略库支持的能力 |
size_t |
len |
策略库的长度 |
susigned int |
policyvers |
策略库的版本 |
u32 |
process_class |
进程的类别 |
u32 |
process_trans_perms |
进程转换时授予的权限 |
查看评论 回复