温馨提示×

Ubuntu Jenkins如何设权限

小樊
34
2026-09-28 10:38:56
栏目: 智能运维

在 Ubuntu 上配置 Jenkins 权限,通常分为 Jenkins 自身权限管理 和 Ubuntu 系统层权限(文件/命令执行) 两部分。下面按常见场景说明。


一、Jenkins 自身权限管理(用户/角色)

1. 启用安全配置

  1. 打开 Jenkins
    http://<IP>:8080
  2. 进入
    Manage Jenkins → Security
  3. 设置:
    • Security Realm
      • 推荐:Jenkins’ own user database
    • Authorization
      • 新手:Matrix-based security
      • 多角色:Role-Based Strategy(需装插件)

✅ 保存后,先创建一个管理员账号


2. 使用 Matrix 权限(简单)

  • 给不同用户勾选权限:
    • Overall / Read
    • Job / Build
    • Job / Configure
  • 匿名用户建议只给 Read

3. 使用 Role-Based 权限(推荐)

安装插件

Manage Jenkins → Plugins → Role-based Authorization Strategy

配置角色

Manage Jenkins → Manage and Assign Roles
  • Manage Roles
    • Global roles(admin / dev / reader)
    • Item roles(按项目前缀)
  • Assign Roles
    • 用户 → 角色映射

二、Ubuntu 系统层权限(非常重要)

Jenkins 默认以 jenkins 用户运行。

1. 查看 Jenkins 用户

ps aux | grep jenkins
id jenkins

2. 让 Jenkins 执行系统命令(如 docker)

示例:Docker 权限

sudo usermod -aG docker jenkins
sudo systemctl restart jenkins

验证:

sudo -u jenkins docker ps

3. 文件/目录权限

若 Jenkins 要读写目录:

sudo chown -R jenkins:jenkins /data/jenkins
sudo chmod -R 755 /data/jenkins

4. 使用 sudo(谨慎)

编辑:

sudo visudo

添加:

jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

三、常见问题

Jenkins 无法访问 Git

sudo -u jenkins git clone <repo>

失败通常是 SSH key 或权限问题。


端口权限(<1024)

Jenkins 默认 8080
若用 80:

sudo apt install authbind
sudo touch /etc/authbind/byport/80
sudo chown jenkins /etc/authbind/byport/80

四、推荐权限方案(总结)

场景 建议
个人 单管理员
小团队 Matrix
企业 Role-Based
系统命令 用户组(docker/sudo)

如果你能告诉我:

  • Jenkins 版本
  • 是否用 Docker
  • 想控制“人”还是“脚本权限”

我可以给你 更精确的配置示例。

0 踩