在 CentOS(以及其他使用 SELinux 的 Linux 发行版)里,“context 权限”一般指 SELinux 安全上下文(Security Context)。下面按常见场景给你说明怎么改。
ls -Z /path/to/file
ps -Z
示例:
ls -Z /var/www/html/index.html
# system_u:object_r:httpd_sys_content_t:s0
使用 chcon:
chcon -t httpd_sys_content_t /var/www/html/test.html
常见参数:
-t:类型(type)-u:用户(如 system_u)-r:角色(如 object_r)示例(修改目录及内容):
chcon -R -t httpd_sys_content_t /var/www/html/
⚠️ chcon 改的上下文在 文件系统重新打标或 restorecon 后会失效。
semanage + restorecon(1)添加默认上下文规则:
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?"
(2)立即应用:
restorecon -Rv /webdata
✅ 重启后仍然有效。
查看已定义规则:
semanage fcontext -l | grep webdata
删除规则:
semanage fcontext -d "/webdata(/.*)?"
例如让某个脚本以 httpd_t 运行:
chcon -t httpd_exec_t /usr/local/bin/myscript.sh
或永久:
semanage fcontext -a -t httpd_exec_t "/usr/local/bin/myscript.sh"
restorecon -v /usr/local/bin/myscript.sh
查看:
semanage port -l | grep http
添加端口:
semanage port -a -t http_port_t -p tcp 8080
查看审计日志:
ausearch -m AVC -ts recent
自动生成策略建议:
audit2why < /var/log/audit/audit.log
或:
sealert -a /var/log/audit/audit.log
| 功能 | 命令 |
|---|---|
| 查看状态 | getenforce |
| 临时关闭 | setenforce 0 |
| 重新打标 | restorecon -Rv /path |
| 修改类型 | chcon -t type file |
| 永久规则 | semanage fcontext |
如果你能说一下 具体改什么(文件 / 目录 / 服务 / 端口),我可以给你更精确的命令。