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

GitLab Runner执行已设+x权限的Bash脚本时提示权限拒绝的问题求助

GitLab Runner执行已设+x权限的Bash脚本时提示权限拒绝的问题求助

各位大佬好,我在Kubernetes环境里部署了GitLab Runner,最近遇到一个百思不得其解的权限问题,折腾了半天没找到原因,来这里求助大家。

问题现象

Runner执行任务时抛出权限拒绝错误:

/bin/bash: line 1: /scripts-1002-1043121/prepare_script: Permission denied

我已做的排查步骤

  1. 进入Runner对应的Pod,确认当前运行用户是root:
runner-qeaugn8yj-project-1002-concurrent-0-m5ikq7m3:/# ps -auxwww
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0   2416  1784 ?        Ss   10:21   0:00 /bin/bash
root         15  0.0  0.0   2740  2464 pts/0    Ss   10:50   0:00 bash
root         21  0.0  0.0   1740   788 pts/0    R+   10:50   0:00 ps -auxwww
  1. 检查目标脚本的权限和所有者,已经设置了777权限,所有者也是root:
runner-qeaugn8yj-project-1002-concurrent-0-m5ikq7m3:/# ls -lahtr /scripts-1002-1043121/prepare_script
-rwxrwxrwx    1 root     root         434 Oct  4 10:21 /scripts-1002-1043121/prepare_script
  1. 尝试直接执行脚本,依然提示权限拒绝:
runner-qeaugn8yj-project-1002-concurrent-0-m5ikq7m3:/# /scripts-1002-1043121/prepare_script
bash: /scripts-1002-1043121/prepare_script: Permission denied
  1. 但如果用bash显式调用这个脚本,却能正常执行完成:
runner-qeaugn8yj-project-1002-concurrent-0-m5ikq7m3:/# bash /scripts-1002-1043121/prepare_script
{"script": "/scripts-1002-1043121/prepare_script"}
Running on runner-qeaugn8yj-project-1002-concurrent-0-m5ikq7m3 via gitlab-runner-7b66fddb55-tr6b5...
{"command_exit_code": 0, "script": "/scripts-1002-1043121/prepare_script"}

脚本内容

这个prepare_script的内容很简单,就是输出一个JSON:

#!/usr/bin/env bash

start_json="{\"script\": \"$0\"}"

echo "$start_json"

现在我完全搞不懂了——脚本权限全开,运行用户是root,为什么直接执行会报权限拒绝?有没有朋友遇到过类似的情况?或者能帮我分析下可能的原因?

备注:内容来源于stack exchange,提问作者brainwash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:44:49