接前一篇文章:SELinux零知识学习三十六、SELinux策略语言之角色和用户(7)
四、SELinux策略语言之约束
SELinux对策略允许的访问提供了更严格的约束机制,不管策略的allow规则如何。
1. 近距离查看访问决定算法
为了理解约束的用途,先来看一下SELinux Linux安全模块(Linux Security Modules,LSM)。如下图所示:
来看一下访问决定逻辑是如何在安全服务器内工作的:
访问向量缓存(Access Vector Cache,AVC)由一组源安全标识符(SID)、目标SID和客体类别锁定,SID是安全上下文内部引用的。
访问向量缓存相关代码见于Linux Kernel源码/security/selinux/avc.c,部分代码如下(内核版本6.1):
// SPDX-License-Identifier: GPL-2.0-only
/** Implementation of the kernel access