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

Jenkins设置目录777权限后复制构件仍报AccessDeniedException错误

问题根因

给/home/ubuntu/training-configuration目录递归设置777权限依然报错的核心原因是:Linux系统对路径的访问权限是逐层校验的。
从任务日志Running as SYSTEM可以确认,Jenkins任务默认使用jenkins系统用户执行。而Ubuntu系统中/home/ubuntu作为用户家目录,默认权限为rwxr-x---(数值权限750),仅目录属主ubuntu、属组ubuntu的成员有进入目录的权限,jenkins用户不在授权范围内,根本无法穿透上层目录访问到下层的training-configuration,因此触发AccessDeniedException。

可落地解决方案

任选以下一种方案操作即可,优先选第一种,符合最小权限原则:

  • 方案1(推荐):给jenkins用户授予上层目录的访问权限
    执行以下命令将jenkins用户加入ubuntu用户组,给/home/ubuntu目录开放组级执行权限,重启Jenkins生效:
    sudo usermod -aG ubuntu jenkins
    sudo chmod g+x /home/ubuntu
    sudo systemctl restart jenkins
    
  • 方案2:临时快速修复
    直接给/home/ubuntu目录开放其他用户的执行权限,允许所有系统用户进入该目录:
    sudo chmod o+x /home/ubuntu
    
  • 方案3(生产环境推荐):更换构件存储路径
    不要将Jenkins构建产物存放在普通用户家目录下,单独创建专属的构件存储目录,授权给jenkins用户:
    sudo mkdir -p /opt/jenkins-artifacts
    sudo chown -R jenkins:jenkins /opt/jenkins-artifacts
    
    之后修改Jenkins自由风格任务中的目标路径为上面新建的目录即可。

注意:随意给目录设置777权限会带来任意用户读写篡改文件的安全风险,生产环境禁止使用这种权限配置。

报错参考

Jenkins任务权限报错截图

Started by user Training
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/save-artifact
FATAL: /home/ubuntu/training-configuration
java.nio.file.AccessDeniedException: /home/ubuntu/training-configuration
    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
    at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:389)
    at java.base/java.nio.file.Files.createDirectory(Files.java:690)
    at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:797)
    at java.base/java.nio.file.Files.createDirectories(Files.java:783)
    at hudson.FilePath.mkdirs(FilePath.java:3609)
    at hudson.FilePath.access$1100(FilePath.java:212)
    at hudson.FilePath$Mkdirs.invoke(FilePath.java:1384)
    at hudson.FilePath$Mkdirs.invoke(FilePath.java:1379)
    at hudson.FilePath.act(FilePath.java:1200)
    at hudson.FilePath.act(FilePath.java:1183)
    at hudson.FilePath.mkdirs(FilePath.java:1374)
    at hudson.plugins.copyartifact.CopyArtifact.copy(CopyArtifact.java:670)
    at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:634)
    at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:518)
    at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:814)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:164)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:522)
    at hudson.model.Run.execute(Run.java:1896)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
    at hudson.model.ResourceController.execute(ResourceController.java:101)
    at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:54:28