GitHub Actions触发bash脚本遇权限拒绝(退出码126)问题排查
解决GitHub Actions执行脚本权限拒绝问题
针对你遇到的Permission denied错误,给你几个可行的解决思路:
方法一:在工作流中直接添加权限赋予步骤
这是最稳妥的方案,不管本地权限设置如何,在GitHub Runner环境里直接给脚本加执行权限。修改你的myhook.yml,在Checkout code步骤之后、Run my script步骤之前新增一步:
- name: Add execute permission to script run: chmod +x script.sh
修改后的完整工作流:
name: Run My Script on: workflow_dispatch: jobs: run_script: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Add execute permission to script run: chmod +x script.sh - name: Run my script run: ./script.sh
方法二:修复Windows下Git的权限识别问题
Windows系统的Git默认关闭了文件权限检测(core.filemode设为false),导致你本地执行的chmod +x和git update-index --chmod=+x操作可能没被Git正确识别。按照以下步骤操作:
- 在本地仓库目录打开Git Bash,执行:
git config core.filemode true - 重新给脚本添加执行权限并提交:
git update-index --chmod=+x script.sh git add script.sh git commit -m "Add execute permission to script.sh" git push
方法三:直接用shell解释器运行脚本
如果不想折腾权限,也可以跳过执行权限的要求,直接调用shell解释器来运行脚本,修改工作流中的Run my script步骤:
- name: Run my script run: sh script.sh
或者用bash:
- name: Run my script run: bash script.sh
这样就能绕过文件执行权限的限制,直接运行脚本内容。
内容的提问来源于stack exchange,提问作者jmt
相关产品推荐
相关产品推荐

