在 Debian 系统中,SELinux 和 “context”(安全上下文) 是紧密相关的概念,但分属不同层次。下面从关系和原理上说明。
SELinux(Security-Enhanced Linux) 是 Linux 的**强制访问控制(MAC)**机制,由美国国家安全局(NSA)开发,集成在内核中。
作用:
Debian 默认 不启用 SELinux(默认是 AppArmor),但可以通过安装和配置启用。
在 SELinux 中,context 是核心概念,用来描述:
“这个对象(进程 / 文件 / 端口)在 SELinux 策略中是谁、属于什么类型”
一个典型的 SELinux context 格式:
user:role:type:level
示例:
system_u:object_r:httpd_exec_t:s0
含义:
system_u:SELinux 用户object_r:角色httpd_exec_t:类型(最重要)s0:安全级别(MLS/MCS)Debian 中启用 SELinux 后:
ls -Z /etc/passwd
# system_u:object_r:etc_t:s0
ps -Z
# system_u:system_r:sshd_t:s0 sshd
semanage port -l
在 Debian + SELinux 环境中:
文件系统 context
selinux-policy 定义restorecon 修复semanage fcontext 永久定义进程 context
sshd → sshd_tDebian 默认:
因此:
ls -Z 可能无输出启用 SELinux 后,context 才会真正参与访问控制。
在 Debian 中,SELinux 依赖 context 来描述和控制安全行为;context 是 SELinux 实现强制访问控制的“身份标签”。
如果你愿意,我也可以讲: