在 CentOS(及大多数 Linux 发行版)里,“context” 通常指的是 SELinux 安全上下文(SELinux security context)。下面按常见场景说明如何“修改 context”。
ls -Z /path/to/file
# 或
ps -Z
示例:
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 file.txt
chconchcon -t httpd_sys_content_t /var/www/html/index.html
常用参数:
-t:类型(type)-u:用户(user)-r:角色(role)-R:递归示例(递归):
chcon -R -t httpd_sys_content_t /var/www/html
⚠️ 注意:chcon 修改的是当前运行状态,文件被还原或系统 relabel 后会失效。
semanage + restoreconsemanage fcontext -l | grep /var/www
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
restorecon -Rv /web
✅ 这样修改在系统重启或 relabel 后仍然有效。
restorecon -Rv /path/to/dir
或对整个系统:
touch /.autorelabel
reboot
| 场景 | Context 类型 |
|---|---|
| Web 目录 | httpd_sys_content_t |
| 可写 Web 目录 | httpd_sys_rw_content_t |
| FTP 目录 | public_content_t |
| 脚本执行 | bin_t |
| 日志文件 | var_log_t |
在 CentOS 中,“context” 也可能指:
如果你能补充具体场景(例如:“我想让 Nginx 访问某个目录” 或 “Docker 容器 context 怎么改”),我可以给你更精确的命令。
如果你愿意,可以告诉我:
我可以一步步帮你配。