在 CentOS 里,“Context” 通常指 SELinux 安全上下文(Security Context)。下面按常见场景说明如何查看、设置、加载 SELinux Context。
ls -Z /path/to/file
ls -Zd /path/to/dir
示例:
ls -Z /var/www/html
ps -eZ
getenforce
sestatus
chconchcon -t httpd_sys_content_t /var/www/html/index.html
常用参数:
-t:类型(最重要)-u:用户(如 system_u)-r:角色(如 object_r)示例:
chcon -R -t httpd_sys_content_t /var/www/html
⚠️ chcon 只是临时修改,系统 relabel 或 restorecon 后会恢复。
semanage 定义默认 Contextsemanage fcontext -a -t httpd_sys_content_t "/data/web(/.*)?"
说明:
-a:添加-t:类型"/data/web(/.*)?":匹配目录及子内容restorecon -Rv /data/web
✅ 这样才是 真正“加载”并永久生效。
ls -Z /data/web
| 场景 | Context 类型 |
|---|---|
| Web 目录 | httpd_sys_content_t |
| Web 可写目录 | httpd_sys_rw_content_t |
| MySQL 数据 | mysqld_db_t |
| SSH 密钥 | ssh_home_t |
| 自定义服务 | 根据 policy 定义 |
getenforce
Disabled:SELinux 不生效,Context 无意义Permissive:仅记录,不拦截Enforcing:强制生效启用 SELinux(需重启):
vi /etc/selinux/config
SELINUX=enforcing
reboot
# 查看拒绝日志
ausearch -m avc -ts recent
# 或
tail -f /var/log/audit/audit.log
如果你指的是 不是 SELinux Context,而是:
可以告诉我具体场景,我可以给你更精确的命令。