在 CentOS 里提到 context,常见有两种场景,下面分开说:
可以自定义。
SELinux 中的 context 形如:
user:role:type:level
例如:
system_u:object_r:httpd_sys_content_t:s0
ls -Z
ps -Z
chcon -t httpd_sys_content_t /var/www/html/index.html
通过 semanage + restorecon:
# 定义目录默认 context
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
# 应用
restorecon -Rv /web
✅ 这样即使重启或执行 restorecon,context 也不会变。
如果你要新建自己的 type(比如 myapp_t),需要写 SELinux policy 模块(用 audit2allow 或 sepolicy)。
如果你指的是 systemd service 的上下文(环境变量、用户、cgroup 等),也可以自定义。
[Service]
Environment="APP_ENV=prod"
User=appuser
WorkingDirectory=/opt/app
重新加载:
systemctl daemon-reload
systemctl restart myapp
比如:
可以具体说一下你指的是 哪一种 context,我可以给你更精确的配置示例。