温馨提示×

centos下jenkins怎样配权限

小樊
44
2026-10-17 23:48:46
栏目: 智能运维

在 CentOS 下配置 Jenkins 权限,通常是通过 Jenkins 自带的权限管理(基于角色或矩阵) 来实现的。下面按常见场景给你一个完整、可操作的说明。


一、登录 Jenkins 并进入全局安全配置

  1. 浏览器访问 Jenkins
    http://<服务器IP>:8080
    
  2. 登录管理员账号
  3. 进入
    Manage Jenkins → Security → Configure Global Security

二、开启用户认证(必须先做)

在 Security Realm 中选择:

  • ✅ Jenkins’ own user database
    (允许在 Jenkins 内部创建用户)

不建议选 Unix user/group,除非你明确要用系统账号

勾选:

  • ✅ Allow users to sign up(可临时勾,建完账号再取消)

三、配置授权策略(核心)

方式一:使用「矩阵授权策略」(简单直观)

在 Authorization 中选择:

  • ✅ Matrix-based security

然后:

用户/角色 Administer Read Job → Build Job → Configure
admin ✅ ✅ ✅ ✅
dev ❌ ✅ ✅ ❌
test ❌ ✅ ❌ ❌

✅ 表示授权,❌ 表示禁止

适用于用户少、权限简单的场景


方式二:使用 Role-based Authorization(推荐)

1. 安装插件

Manage Jenkins → Manage Plugins → Available 搜索并安装:

Role-based Authorization Strategy

2. 修改授权策略

Configure Global Security → Authorization 选择:

Role-Based Strategy

3. 配置角色

进入: Manage Jenkins → Manage and Assign Roles

(1)Manage Roles
  • Global roles
    • admin(Administrator)
    • reader(Read Only)
  • Project roles
    • dev(匹配 dev-* 项目)
    • test(匹配 test-* 项目)
(2)Assign Roles
  • 把用户加到对应角色
  • 一个用户可属于多个角色

✅ 这种方式适合 多项目、多团队


四、创建用户(CentOS + Jenkins)

方法 1:Jenkins 页面创建

Manage Jenkins → Users → Create User

方法 2:命令行(不常用)

Jenkins 用户是内部数据库,一般不在系统层创建


五、Linux 权限层面(容易忽略)

Jenkins 在 CentOS 上通常以 jenkins 用户运行:

ps -ef | grep jenkins

如果你在 Job 里执行:

  • 操作 /var/lib/jenkins
  • 执行 docker
  • 操作 /opt

需要:

sudo usermod -aG docker jenkins
sudo chown -R jenkins:jenkins /your/path

改完重启:

sudo systemctl restart jenkins

六、常见问题

1. 登录后提示无权限

  • 管理员账号未勾 Administer
  • 使用了 Role 插件但没分配角色

2. 无法创建 Job

  • 没开 Job → Create
  • 项目角色正则没匹配到

3. 忘记管理员密码

vim /var/lib/jenkins/users/admin/config.xml

删除 <passwordHash> 内容并重启


七、推荐配置(生产环境)

✅ Jenkins 内部用户
✅ Role-based Authorization
✅ 最小权限原则
✅ Jenkins 用户加入 docker 组


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

  • Jenkins 版本
  • 是否是 Docker 部署
  • 想实现什么权限模型(比如:开发只能看不能改)

我可以直接给你 对应配置示例。

0 踩