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

Jenkins在LXC容器执行Shell命令时遇权限拒绝问题求助

问题场景

在Jenkinsfile中执行以下脚本块:

String runTest = """
                #!/bin/bash
                if [ ${EXTRA_ENV} != "none" ]; then
                    echo "source extra environment file"
                    source ${WORKSPACE}/${upgradeEnvFile} //该脚本会创建tmp.txt文件
                fi
                cat tmp.txt
                """
rc = sh(script: runTest, returnStatus: true)

出现报错:

Cannot contact KVM-66: java.io.FileNotFoundException: /home/coolboy/workspace/DemoJob@tmp/durable-451e7be4/jenkins-log.txt (Permission denied)

登录KVM节点执行ls命令查看权限:

total 84
drwxrwxr-x 3 coolboy coolboy  4096 Nov 15 16:37 ..
-rw-rw-r-- 1 coolboy coolboy   652 Nov 15 16:37 script.sh
-rwx------ 1 root    coolboy 65849 Nov 15 16:37 jenkins-log.txt
-rw-rw-r-- 1 coolboy coolboy     2 Nov 15 16:37 jenkins-result.txt
drwxrwxr-x 2 coolboy coolboy  4096 Nov 15 16:37 .

可见jenkins-log.txt的所有者被改为root,但tmp.txt已成功创建。

已尝试无效方案

  • 参考过Jenkins pipeline权限相关的问题解决方案,均未解决问题

环境信息

初始环境

  • Jenkins版本:2.249.2
  • KVM节点操作系统:Ubuntu20.04
  • Durable task插件版本:1.35

升级后环境(问题仍存在)

  • Jenkins版本:2.375.3
  • Durable task插件版本:510.v324450f8dca_4

备注:相同任务配置在Ubuntu18.04节点上可正常运行

解决思路建议

  • 排查source ${WORKSPACE}/${upgradeEnvFile}脚本内容:该脚本可能存在sudo、su root等提权操作,导致后续日志文件以root身份生成。检查脚本内的权限切换逻辑,尽量避免在该脚本中使用root权限,或操作完成后切换回原用户。
  • 调整Durable task日志权限策略:修改Jenkins节点的umask值,确保生成的日志文件能被Jenkins执行用户(coolboy)访问;或在插件配置中调整日志文件的默认权限。
  • 拆分权限操作:将需要root权限的操作单独拆分到sh步骤,明确使用sudo执行,避免权限混合影响主流程日志:
    // 单独执行提权操作
    sh(script: "sudo source ${WORKSPACE}/${upgradeEnvFile}", returnStatus: true)
    // 普通用户执行后续操作
    sh(script: "cat tmp.txt", returnStatus: true)
    
  • 对比Ubuntu版本权限差异:检查Ubuntu20.04与18.04在sudoers配置、PAM策略、默认umask值上的差异,修复因系统配置变化导致的权限问题。
  • 调整工作目录权限:确保Jenkins执行用户对/home/coolboy/workspace/DemoJob@tmp/目录及子文件拥有读写权限,可尝试将目录权限设置为775,避免目录权限异常导致日志文件创建失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:20:43