在 CentOS(以及 RHEL 系列)中,“Context”最常见的含义是 SELinux 中的安全上下文(Security Context)。它用于 强制访问控制(MAC),决定进程能否访问文件、端口、进程等资源。
下面从常见场景系统说明。
SELinux Context 是 一组安全标签,格式通常为:
user:role:type:level
例如:
ls -Z /var/www/html
# system_u:object_r:httpd_sys_content_t:s0
| 字段 | 说明 |
|---|---|
| user | SELinux 用户(如 system_u、unconfined_u) |
| role | 角色(如 object_r、system_r) |
| type | 最关键,决定访问规则 |
| level | 多级安全(MLS),一般默认 s0 |
✅ 实际权限控制主要靠 type
CentOS 使用 SELinux 后:
例如:
httpd_sys_content_t 类型的文件例如:
httpd_t 进程 → 只能访问 httpd_* 类型ssh_t 进程 → 只能访问 ssh 相关资源即使服务被攻破,也 无法随意访问系统文件
| 服务 | 文件 Context |
|---|---|
| Apache | httpd_sys_content_t |
| Nginx | httpd_sys_content_t |
| MySQL | mysqld_db_t |
| SSH | ssh_home_t |
| 系统文件 | etc_t, usr_t |
ls -Z
ps -Z
netstat -Z
chcon -t httpd_sys_content_t /data/web
restorecon -Rv /var/www/html
semanage fcontext -a -t httpd_sys_content_t "/data/web(/.*)?"
restorecon -Rv /data/web
| 权限类型 | 作用 |
|---|---|
| Linux DAC | 用户/组/others |
| SELinux MAC | context + 策略 |
| 两者关系 | 同时生效,SELinux 优先级高 |
如果你不是在问 SELinux,那么:
但 在 CentOS 中,“Context”90% 指的是 SELinux Context。
CentOS 中的 Context 主要用于 SELinux,通过给进程和文件打安全标签,实现强制访问控制,防止越权访问,即使 root 权限也受限制。
如果你是在 某个具体场景下(Apache、容器、报错日志)看到 Context,可以把上下文发我,我可以针对你的情况详细解释。