在 Debian 体系里,context(安全上下文) 和 SELinux 的关系,可以从“概念—实现—Debian 现状”三个层面来理解。
context(安全上下文) 是 强制访问控制(MAC) 系统中用来描述“主体/客体身份与权限属性”的字符串。
在 SELinux 中,一个典型的 context 形如:
user:role:type:level
例如:
system_u:object_r:www_data_t:s0
含义:
user:SELinux 用户role:角色type:类型(最核心,决定访问规则)level:MLS/MCS 安全级别(可选)context 本身不是 SELinux 独有的,但在 Linux 上最常见于 SELinux。
SELinux 依赖 context 工作:
SELinux 的访问决策是:
“某 context 的进程,能否访问某 context 的对象?”
例如:
httpd_t 进程httpd_sys_content_t 文件shadow_t 文件所以:
没有 context,SELinux 就无法做访问控制
Debian 默认使用:
你可以手动安装并启用 SELinux:
apt install selinux-basics selinux-policy-default
selinux-activate
reboot
启用后:
ls -Z 能看到 contextps -Z 能看到进程 context在 Debian 文档或工具中,看到 context 不一定都是 SELinux:
ls -Zps -Zsemanage fcontextcontext 是 SELinux 用来做访问控制的核心元数据;
在 Debian 中,SELinux 是可选的,context 主要在启用 SELinux 时才发挥作用。
如果你愿意,我可以: