restorecon是Linux中专用于恢复文件或目录默认SELinux上下文的命令,严格依据系统策略库自动修正上下文,解决因mv、chcon、semanage等操作导致的上下文偏离问题,确保服务正常访问。

什么时候必须用 restorecon
以下情况会导致文件上下文偏离默认值,服务异常(如 Nginx 打不开网页、SSH 登录失败、MySQL 启动报错),此时需立即运行 restorecon:
- 用
mv移动文件到系统关键路径(例如把/root/index.html移到/var/www/html/) - 用
chcon手动改过上下文后想退回默认设置 - 执行过
semanage fcontext添加了新路径的永久上下文策略,但尚未生效 - 系统升级、重装软件包或误操作后,大量文件上下文混乱
基础用法:快速恢复单个或多个文件
直接指定路径即可,无需知道原始标签:
restorecon /var/www/html/index.html restorecon /etc/ssh/sshd_config /etc/passwd
命令会自动比对策略库,仅修改偏离默认的文件;已正确的不会改动,可放心执行。
常用场景:递归恢复整个目录树
Web 目录、配置目录、服务数据目录出问题时最常用:
- 恢复 Apache/Nginx 网页目录:
restorecon -Rv /var/www/html/ - 恢复系统配置目录:
restorecon -Rv /etc/ - 恢复服务运行时目录:
restorecon -Rv /var/log /var/lib/mysql
-R 表示递归处理子目录和文件,-v 显示每一步变更,便于确认效果。
配合 semanage 实现自定义路径的永久生效
若你用 semanage fcontext 为非标准路径(如 /webdata)设定了新规则,restorecon 是唯一让该规则落地的命令:
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?" restorecon -Rv /webdata
第一行写入策略,第二行触发应用——缺一不可。没有 restorecon,新规则只是“纸上谈兵”。


















