温馨提示×

centos context权限怎么改

小樊
34
2026-09-12 01:20:17
栏目: 智能运维

在 CentOS(以及其他使用 SELinux 的 Linux 发行版)里,“context 权限”一般指 SELinux 安全上下文(Security Context)。下面按常见场景给你说明怎么改。


一、查看当前 SELinux 上下文

ls -Z /path/to/file
ps -Z

示例:

ls -Z /var/www/html/index.html
# system_u:object_r:httpd_sys_content_t:s0

二、临时修改 SELinux 上下文(重启后失效)

使用 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 后会失效。


三、永久修改 SELinux 上下文(推荐)

1️⃣ 使用 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

五、端口 SELinux 上下文(常考)

查看:

semanage port -l | grep http

添加端口:

semanage port -a -t http_port_t -p tcp 8080

六、如果 SELinux 导致的权限问题

查看审计日志:

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

如果你能说一下 具体改什么(文件 / 目录 / 服务 / 端口),我可以给你更精确的命令。

0