title, type, tags, sources, last_updated
title
type
tags
sources
last_updated
SE Linux Enforcing Mode
concept
Security
Linux
MAC
Access Control
public-cloud-learning-sessions-eks-optimization-part-2-of-3-running-containers-w
2026-04-24
SE Linux Enforcing Mode
SE Linux( Security-Enhanced Linux) 是美国国家安全局( NSA) 开发的 Linux 内核安全模块, 通过强制访问控制( MAC, Mandatory Access Control) 机制, 在传统的自主访问控制( DAC, Discretionary Access Control) 之上增加了一层细粒度的安全策略。
DAC vs MAC
维度
DAC( 传统 Linux 权限)
MAC( SE Linux)
控制方式
所有者自主决定
系统统一策略强制执行
粒度
用户/组/其他 + rwx
主体标签 + 客体标签 + 策略规则
绕过风险
root 可修改任何权限
即使 root 也受策略约束
配置难度
简单( chmod/chown)
复杂(需要策略编写)
关键概念
主体( Subject) :进程,通常具有特定的安全上下文(如 system_u:system_r:container_file_t)
客体( Object) :文件、目录、端口、进程等系统资源
安全上下文( Security Context) :格式为 user:role:type[:level] 的标签字符串
策略规则( Policy Rules) :定义哪些主体可以对哪些客体执行哪些操作的规则集合
Enforcing 模式 :强制执行策略,违反策略的操作被拒绝并记录
Permissive 模式 :仅记录违反策略的操作,不实际阻止
Bottlerocket 中的 SE Linux
Bottlerocket OS 默认启用 SE Linux enforcing 模式:
容器隔离 :每个容器运行在独立的安全上下文中,防止容器逃逸后影响宿主机或其他容器
最小权限原则 :即使容器内获得 root 权限,其操作仍受 SE Linux 策略限制
与容器运行时集成 : containerd、docker 等容器运行时通过 SE Linux 标签隔离不同容器的工作负载
常见 SE Linux 标签
标签
用途
unconfined_t
不受限制的进程
container_file_t
容器管理的文件(如 volume 挂载点)
svirt_sandbox_file_t
SELinux 虚拟沙箱文件标签
admin_t
系统管理员类型
与其他安全机制的协同
与 AppArmor : AppArmor 是 SE Linux 的替代方案, Ubuntu 默认使用 AppArmor
与 seccomp : seccomp 限制进程可调用的系统调用, SE Linux 控制对系统对象的访问
与 capabilities : Linux capabilities 将 root 特权拆分为多个独立能力, SE Linux 在此基础上进一步限制能力的使用场景
故障排查
SE Linux enforcing 模式下,常见故障表现为"Permission denied"即使文件权限看起来正确: