温馨提示×

CentOS Context 如何更新

小樊
39
2026-08-04 08:05:53
栏目: 智能运维

在 CentOS 里,“Context”通常指 SELinux 安全上下文(Security Context)。下面按常见场景给你说明如何“更新 / 重置 / 修改”SELinux Context。


一、查看当前 SELinux Context

ls -Z /path/to/file
ps -Z

示例:

ls -Z /var/www/html/index.html

二、临时修改 Context(重启后失效)

1️⃣ 使用 chcon(临时修改)

chcon -t httpd_sys_content_t /var/www/html/index.html

常用参数:

chcon -R -t httpd_sys_content_t /var/www/html/

⚠️ chcon 修改的 Context 在系统 relabel 或 restorecon 后会失效


三、永久更新 Context(推荐 ✅)

1️⃣ 查看默认 Context 规则

semanage fcontext -l | grep /var/www

2️⃣ 添加/修改默认 Context 规则

semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"

说明:

  • -a 添加
  • -t 指定类型
  • (/.*)? 表示目录及子目录

3️⃣ 应用 Context(立即生效)

restorecon -Rv /var/www/html

✅ 这是永久生效的关键步骤


四、删除错误的 Context 规则

semanage fcontext -d "/var/www/html(/.*)?"
restorecon -Rv /var/www/html

五、整个系统重新标记 Context

方法 1(推荐)

touch /.autorelabel
reboot

方法 2(强制)

fixfiles -F onboot
reboot

六、SELinux 状态检查

getenforce
sestatus

如果是 Disabled,Context 不生效。


七、你可能问的是其他“Context”?

如果你指的是:

  • Docker / Podman 的 --context
  • Kubernetes 的 SecurityContext
  • 终端会话上下文(如 CentOS Stream / RHEL)

请直接告诉我具体场景,我可以给你更精准的更新方式。


✅ 总结(最常用)

semanage fcontext -a -t httpd_sys_content_t "/data(/.*)?"
restorecon -Rv /data

如果你愿意,可以把 报错信息 / 文件路径 / 服务名 发我,我可以直接帮你写完整命令。

0