chcon是Linux中用于临时修改文件或目录SELinux安全上下文的命令,支持按类型(-t)、用户(-u)、角色(-r)、级别(-l)或参考文件(--reference)调整,修改后需用restorecon恢复或semanage fcontext实现永久生效。

chcon 是 Linux 中用于临时修改文件或目录 SELinux 安全上下文的命令,改动只在当前文件系统标记有效,重启、restorecon 或策略重载后可能被覆盖。
查看当前上下文再操作
执行 chcon 前务必先用 ls -Z 查看原上下文,避免误改:
ls -Z /var/www/html/index.html
输出类似:unconfined_u:object_r:httpd_sys_content_t:s0 —— 其中 httpd_sys_content_t 是关键类型字段。
常用修改方式
日常最常调整的是 类型(-t),其他字段如用户(-u)、角色(-r)、级别(-l)较少单独改:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 仅改类型:chcon -t httpd_sys_content_t /var/www/html/index.html
- 递归改整个目录:chcon -R -t httpd_sys_content_t /var/www/html/
- 按参考文件设置:chcon --reference=/var/www/html/default.html /var/www/html/new.html
- 同时设多个字段:chcon -u system_u -r object_r -t etc_t /etc/myconfig.conf
注意安全与持久性
chcon 的修改是临时的,有几点必须留意:
- 执行 restorecon 或系统重标(如 touch /.autorelabel 后重启)会还原为策略默认值
- 要永久生效,得用 semanage fcontext 添加规则,再 run restorecon
- 改错上下文可能导致服务拒绝访问(比如 Apache 报 403),此时可用 restorecon -v 恢复
- 某些最小化系统需先安装 policycoreutils 才有 chcon 命令
配合 restorecon 快速回退
如果改完发现服务异常,不用手动记原值,直接恢复即可:
restorecon -v /var/www/html/index.html
加 -R 可批量恢复目录:restorecon -Rv /var/www/html/

















