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

Jenkins创建任务时配置任务文件夹所属用户组的方法咨询

解决方案

方案1:调整Authorize User插件的默认运行身份配置(优先推荐)

  • 进入Jenkins全局安全配置页面,找到Access Control for Builds模块
  • 选择Run as the user who triggered the build选项,同时勾选Apply file system permission for builds run as the triggering user(部分版本翻译为「为触发用户运行的构建应用文件系统权限」)
  • 保存配置后,后续触发构建生成的$JENKINS_HOME/jobs/下子目录,属主会自动设为触发构建的操作用户,属组默认继承父目录的组权限
  • 提前给不同租户组的父文件夹设置正确的属组,再开启组继承权限,就能保证同组用户可以访问本组目录下的任务,跨组无任何访问权限

方案2:配置Jenkins内置参数+监听脚本(适合旧版本不支持插件上述选项的场景)

  • 编辑Jenkins启动配置文件(通常为/etc/sysconfig/jenkins或者/etc/default/jenkins,根据安装方式不同路径存在差异)
  • 修改JENKINS_JAVA_OPTIONS参数,添加以下配置项:
    -Djenkins.security.FileSystemAccessRule.defaultUmask=0027
    
    上述umask值可按需调整,0027代表属主有读写执行权限、属组有读执行权限、其他用户无任何权限,符合多租户权限隔离要求
  • 搭配inotifywait监听脚本实现自动修正权限:监听$JENKINS_HOME/jobs/目录的创建事件,新目录生成后自动根据父目录的属主属组修正子目录权限,脚本参考如下:
    #!/bin/bash
    inotifywait -m -r -e create --format '%w%f' "$JENKINS_HOME/jobs/" | while read NEWFILE
    do
        if [ -d "$NEWFILE" ]; then
            PARENT_DIR=$(dirname "$NEWFILE")
            # 继承父目录的属主属组和权限规则
            chown --reference="$PARENT_DIR" "$NEWFILE"
            chmod --reference="$PARENT_DIR" "$NEWFILE"
        fi
    done
    
    将脚本配置为系统服务开机自启即可生效
注意事项
  • 调整配置前建议先完整备份$JENKINS_HOME/jobs/目录下的所有文件,避免权限配置错误导致现有任务无法访问
  • 如果搭配CloudBees Folders插件做租户目录隔离,可以直接在文件夹的权限配置页给对应租户组分配Job/Create、Job/Read权限,结合上述文件系统权限配置,就能完全实现目录级别的租户隔离,全程不需要操作SYSTEM用户组相关配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:05