你提到的 “CentOS Context” 一般是指 SELinux 上下文(Security Context),常见于文件、进程、端口等对象。下面按最常见场景给你一套验证方法。
getenforce
Enforcing:生效Permissive:仅记录不拦截Disabled:未启用(Context 不生效)查看详细状态:
sestatus
ls -Z /path/to/file
或
ls -Zd /path/to/dir
示例:
ls -Z /var/www/html/index.html
# system_u:object_r:httpd_sys_content_t:s0
✅ 看到 system_u:object_r:xxx_t 说明 Context 存在
matchpathcon /var/www/html/index.html
如果和 ls -Z 不一致,说明 context 可能不正确。
restorecon -v /var/www/html/index.html
递归修复目录:
restorecon -Rv /var/www/html
ps -eZ | grep httpd
示例:
system_u:system_r:httpd_t:s0 1234 /usr/sbin/httpd
✅ 进程运行在 httpd_t 才说明 SELinux 策略生效
semanage port -l | grep http
示例:
http_port_t tcp 80, 443, 8080
semanage port -a -t http_port_t -p tcp 8888
验证:
semanage port -l | grep 8888
setenforce 0
如果服务立刻正常 → SELinux Context / 策略问题
ausearch -m AVC -ts recent
或:
tail -f /var/log/audit/audit.log
常见关键字:
deniedscontext=tcontext=| 检查项 | 命令 |
|---|---|
| SELinux 状态 | getenforce |
| 文件 context | ls -Z |
| 修复 context | restorecon |
| 进程 context | ps -eZ |
| 端口 context | semanage port -l |
| 拒绝原因 | ausearch -m AVC |
❌ 只改文件权限(chmod)
❌ 只改属主(chown)
✅ SELinux 需要 context 正确
如果你能具体说一下是 文件 / 服务 / 端口 / Docker / K8s / 自定义策略 哪种 Context,我可以给你更精确的验证步骤。