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

使用GitLab Runner访问ec2-user目录时遇权限拒绝问题求助

解决GitLab Runner访问/home/ec2-user目录的权限拒绝问题

问题根源

GitLab Runner的Shell执行器默认以gitlab-runner系统用户运行,而/home/ec2-user及其子目录的所有者是ec2-user,默认权限配置下,gitlab-runner用户没有进入该目录的权限,导致执行CI任务时触发「Permission Denied」错误。

解决方法

方法一:将gitlab-runner用户加入ec2-user用户组(推荐)

这种方式不会改变目录的所有权,同时赋予gitlab-runner用户访问目录的权限:

  1. 登录Runner所在的EC2实例,执行命令将gitlab-runner添加到ec2-user用户组:
    sudo usermod -aG ec2-user gitlab-runner
    
  2. 调整目标目录的组权限,确保组内用户拥有读和执行权限(进入目录需要执行权限):
    sudo chmod g+rx /home/ec2-user
    sudo chmod g+rx /home/ec2-user/deployer
    sudo chmod g+rx /home/ec2-user/deployer/safety
    sudo chmod g+rx /home/ec2-user/deployer/safety/httpdocs
    
  3. 重启GitLab Runner服务,让用户组变更生效:
    sudo systemctl restart gitlab-runner
    

方法二:修改目标目录的所有者为gitlab-runner

如果该目录不需要归ec2-user所有,可以直接修改目录的所有权:

sudo chown -R gitlab-runner:gitlab-runner /home/ec2-user/deployer/safety/httpdocs

注意:此操作会将目录的所有者彻底改为gitlab-runner,若有其他服务依赖ec2-user对该目录的权限,谨慎使用。

额外检查

错误日志中出现mkdir: cannot create directory ‘/home/ec2-user’,需确认GitLab Runner的工作目录配置是否被错误设置为/home/ec2-user。可以查看Runner的配置文件(通常位于/etc/gitlab-runner/config.toml),确保builds_dir路径是Runner有权访问的目录(如默认的/var/gitlab-runner/builds)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:03:16