You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置SSL及HTTPS重定向后GitLab CI出现权限错误求助

GitLab CI 权限错误排查与解决

错误原因分析

出现mkdir: cannot create directory ‘/root’: Permission denied和删除文件权限拒绝的问题,核心原因是GitLab Runner的执行用户没有目标目录的读写权限,具体场景包括:

  • Runner默认工作目录被配置为/root/builds,但Runner是以非root用户(比如默认的gitlab-runner用户)运行,无法访问/root目录
  • 工作目录的权限配置错误,Runner用户对该路径没有读写权限
  • 配置SSL和HTTPS重定向后,Runner的环境变量或配置文件被意外修改,导致工作路径指向了无权限的目录

解决方法

1. 检查并修改Runner配置文件

找到Runner的配置文件(通常路径为/etc/gitlab-runner/config.toml),查看[[runners]]段中的builds_dir和cache_dir配置:

[[runners]]
  name = "your-runner-name"
  url = "https://your-gitlab-url/"
  token = "your-token"
  executor = "shell"
  builds_dir = "/var/gitlab-runner/builds"  # 替换为非root路径,确保runner用户有权限
  cache_dir = "/var/gitlab-runner/cache"

修改后重启GitLab Runner服务:

sudo gitlab-runner restart

2. 修复工作目录权限

如果必须使用现有路径(不推荐用/root),执行以下命令赋予Runner用户权限:

# 假设runner用户是gitlab-runner
sudo chown -R gitlab-runner:gitlab-runner /root/builds
sudo chmod -R 755 /root/builds

3. 确认Runner运行用户

检查Runner的运行用户:

  • 如果是systemd管理,查看service文件:
cat /etc/systemd/system/gitlab-runner.service | grep User

确保该用户对工作目录有完整读写权限,若配置错误,修改service文件后重新加载并重启:

sudo systemctl daemon-reload
sudo systemctl restart gitlab-runner

4. 检查CI/CD变量

进入GitLab项目的Settings > CI/CD > Variables,确认没有手动设置CI_PROJECT_DIR或其他路径相关变量,强制指向了无权限的目录,如有则删除或修改。

5. 重新注册Runner(可选)

如果配置混乱,直接重新注册Runner,过程中指定正确的工作目录:

sudo gitlab-runner register

按照提示输入GitLab地址、token、executor等信息,设置builds目录为非root路径(如/var/gitlab-runner/builds)。

内容的提问来源于stack exchange,提问作者Nurgisa A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:36:23