温馨提示×

centos context有何区别

小樊
35
2026-09-18 07:16:31
栏目: 智能运维

在 CentOS / Linux 里提到 context,通常出现在 SELinux 场景中。你说的“CentOS context 有何区别”,一般是指在 SELinux 安全上下文(security context) 中,不同对象或不同维度的 context 区别。下面按常见情况说清楚。


一、什么是 SELinux context

SELinux 给每一个进程、文件、端口、用户都打上一个“安全标签”,叫 security context,格式通常是:

user:role:type:level

例如:

system_u:object_r:httpd_sys_content_t:s0

二、常见 context 的“区别”在哪里

1️⃣ 文件 context(file context)

作用于:文件、目录

示例:

/var/www/html/index.html → system_u:object_r:httpd_sys_content_t:s0

特点:

  • 由 semanage fcontext 定义
  • 用 restorecon 修复
  • 决定谁能访问这个文件

常见类型:

  • httpd_sys_content_t:Apache 可读
  • user_home_t:用户家目录
  • etc_t:配置文件

2️⃣ 进程 context(process context)

作用于:正在运行的程序

示例:

ps -Z
system_u:system_r:httpd_t:s0

特点:

  • 决定进程能做什么
  • 和文件 context 匹配才能访问

比如:

  • httpd_t 进程
  • 只能读 httpd_sys_content_t

3️⃣ 用户 context(user context)

作用于:登录用户

示例:

user_u:user_r:user_t:s0

常见:

  • system_u:系统进程
  • unconfined_u:不受限用户
  • user_u:普通 SELinux 用户

4️⃣ 端口 context(port context)

作用于:网络端口

示例:

semanage port -l | grep http
http_port_t tcp 80, 443

作用:

  • 决定哪个进程能用哪个端口
  • 比如 httpd_t 只能用 http_port_t

三、type 是最关键的区别点 ⭐

在 SELinux 中:

真正决定权限的是 type

例如:

  • httpd_t
  • httpd_sys_content_t

SELinux 规则基本是:

allow httpd_t httpd_sys_content_t:file read;

四、不同 CentOS 版本的区别(简要)

CentOS 版本 SELinux 默认
CentOS 6 默认开启
CentOS 7 默认开启
CentOS 8 默认开启
CentOS Stream 默认开启

命令基本一样,只是工具版本不同。


五、常用排查命令

# 查看文件 context
ls -Z

# 查看进程 context
ps -Z

# 查看端口 context
semanage port -l

# 修复文件 context
restorecon -Rv /var/www

如果你指的是 “CentOS context 和其他系统(如 Ubuntu / RHEL)context 的区别”,或 “docker context / kubectl context”,也可以告诉我,我可以针对性对比。

0 踩