温馨提示×

怎么设置Jenkins权限

小樊
40
2026-08-04 16:38:04
栏目: 编程语言

Jenkins 的权限设置主要通过 内置的“矩阵授权策略”基于角色的插件(Role-Based Strategy) 来实现。下面按常见场景给你详细说明。


一、使用 Jenkins 内置权限(适合简单场景)

1️⃣ 开启安全配置

  1. 登录 Jenkins
  2. 进入:
    Manage Jenkins → Security → Configure Global Security
  3. 勾选 Enable security

2️⃣ 选择授权策略

Authorization 中选择:

✅ 推荐:Matrix-based security(矩阵授权)

适合用户不多、权限不复杂的场景。

  • 可以针对 用户 / 组 设置权限
  • 权限包括:
    • Overall(全局)
    • Job(任务)
    • View(视图)
    • Credentials(凭据)

示例:

权限 admin dev test
Overall/Administer
Job/Build
Job/Configure
Credential/View

二、使用 Role-Based Authorization Strategy(推荐 ✅)

企业/团队环境强烈推荐

1️⃣ 安装插件

  1. Manage Jenkins → Plugins
  2. 搜索并安装:
    Role-based Authorization Strategy

2️⃣ 启用该策略

  1. Configure Global Security
  2. Authorization 选择:
    Role-Based Strategy

3️⃣ 配置角色(核心)

进入: Manage Jenkins → Manage and Assign Roles

① Manage Roles(定义角色)

角色类型 说明
Global roles 全局权限(如 admin、user)
Project roles 针对 Job(支持正则匹配)
Slave roles Agent 节点权限

示例:

  • admin:全部权限
  • dev:Job Build / Configure
  • readonly:只能查看

✅ Project roles 支持正则:

projectA-.*
projectB-.*

② Assign Roles(分配角色)

  • 用户 / LDAP组 / GitHub组 绑定角色
  • 一个用户可以拥有多个角色

示例:

用户 角色
admin admin
zhangsan dev
testuser readonly

三、常见权限示例

✅ 只允许某些人构建 Job

  • 给 Job 所在项目角色:
    • Job/Build ✅
    • Job/Configure ❌

✅ 不同项目组隔离

  • 项目 A:projectA-.*
  • 项目 B:projectB-.*
  • 不同用户分配不同 Project Role

四、与用户来源结合

Jenkins 支持多种用户源:

  • Jenkins 自带用户数据库(简单)
  • LDAP
  • GitHub OAuth
  • GitLab OAuth

使用 LDAP / OAuth 时,角色通常绑定 group 名


五、常见问题

❓ 设置后没生效?

  • 确认 Authorization 已切换
  • 用户是否真的被分配到角色
  • 是否使用了正则但 Job 名不匹配

❓ 管理员被锁死?

  1. 停止 Jenkins
  2. 编辑:
    $JENKINS_HOME/config.xml
    
  3. 修改:
    <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
    
  4. 重启 Jenkins

六、推荐组合(最佳实践 ✅)

Role-Based Strategy + Project Roles + 正则匹配

适合:

  • 多项目组
  • 多环境(dev/test/prod)
  • 企业级 Jenkins

如果你愿意,可以告诉我:

  • Jenkins 版本
  • 是否使用 LDAP / GitHub / GitLab
  • 是单项目还是多团队

我可以帮你设计一套 具体的权限方案

0